amigalabs / adtools Goto Github PK
View Code? Open in Web Editor NEWThis project forked from sba1/adtools
Experimental GNU toolchain for AmigaOS
This project forked from sba1/adtools
Experimental GNU toolchain for AmigaOS
Latest gcc version has a problem with -pthread
switch. we need to add it back using:
#undef LIB_SPEC
#define LIB_SPEC "\
--start-group %{pthread:-lpthread} -lc --end-group"
Add support for CLIB4 library for both the GCC 6 and GCC 8 compiler versions.
GCC 6 because people still use that with SPE.
GCC 8 because it is still used.
@afxgroup
We should discus this on the 26th October. e.g. machine target command line options that are out of date in the SPEC file.
When linking with clib2 or clib4
lib/gcc/ppc-amigaos/11.3.0/../../../../ppc-amigaos/lib
Is one of the paths to search for libraries. This is not correct. Only
lib/gcc/ppc-amigaos/11.3.0/../../../../ppc-amigaos/lib/clib[24]
should be used. The former are strictly newlib's libraries.
It would be very unlikely that this would cause an issue since the later directory is searched before the former, but it should be tidied up.
===
I should also mention that it seems that has been the case very a long time!
===
This ticket will satisfy: #2.
Just where on earth are the following directories being added to library search:
-L/home/rjd/projects/adtools_rjd/native-build/root-cross/lib/gcc/ppc-amigaos/11.3.0/clib4 -L/home/rjd/projects/adtools_rjd/native-build/root-cross/lib/gcc/ppc-amigaos/11.3.0/../../../../ppc-amigaos/lib/clib4 -L/home/rjd/projects/adtools_rjd/native-build/root-cross/lib/gcc/ppc-amigaos/11.3.0 -L/home/rjd/projects/adtools_rjd/native-build/root-cross/lib/gcc/ppc-amigaos/11.3.0/../../../../ppc-amigaos/lib --verbose
This is either part of START_FILE_CLIB4 or it is added by something.
Everything makes sense except for that set of options. Here is the linking step for the test:
/home/rjd/projects/adtools_rjd/native-build/root-cross/libexec/gcc/ppc-amigaos/11.3.0/collect2 -plugin /home/rjd/projects/adtools_rjd/native-build/root-cross/libexec/gcc/ppc-amigaos/11.3.0/liblto_plugin.so -plugin-opt=/home/rjd/projects/adtools_rjd/native-build/root-cross/libexec/gcc/ppc-amigaos/11.3.0/lto-wrapper -plugin-opt=-fresolution=/tmp/ccyAzdjC.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_eh -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_eh --defsym __amigaos4__=1 -Bstatic -q -d -V -Qy -L/home/rjd/projects/adtools_rjd/native-build/root-cross/ppc-amigaos/SDK/clib4/lib -L/home/rjd/projects/adtools_rjd/native-build/root-cross/lib/gcc/ppc-amigaos/11.3.0/clib4/lib -L/home/rjd/projects/adtools_rjd/native-build/root-cross/ppc-amigaos/SDK/local/clib4/lib -L/home/rjd/projects/adtools_rjd/native-build/root-cross/ppc-amigaos/SDK/local/common/lib -o main /home/rjd/projects/adtools_rjd/native-build/root-cross/ppc-amigaos/SDK/clib4/lib/crtbegin.o /home/rjd/projects/adtools_rjd/native-build/root-cross/ppc-amigaos/SDK/clib4/lib/crt0.o -L/home/rjd/projects/adtools_rjd/native-build/root-cross/lib/gcc/ppc-amigaos/11.3.0/clib4 -L/home/rjd/projects/adtools_rjd/native-build/root-cross/lib/gcc/ppc-amigaos/11.3.0/../../../../ppc-amigaos/lib/clib4 -L/home/rjd/projects/adtools_rjd/native-build/root-cross/lib/gcc/ppc-amigaos/11.3.0 -L/home/rjd/projects/adtools_rjd/native-build/root-cross/lib/gcc/ppc-amigaos/11.3.0/../../../../ppc-amigaos/lib --verbose /tmp/ccdGNCdG.o -lgcc -lgcc_eh --start-group -lc --end-group -lgcc -lgcc_eh /home/rjd/projects/adtools_rjd/native-build/root-cross/ppc-amigaos/SDK/clib4/lib/crtend.o
START_FILE [the -L options that seemingly come from nowhere along with --verbose] [the object being linked with] END_FILE etc.
I need to find out where these are coming from, and they do not seem to be in the SPEC amigaos.h file either. For example, in the file "--verbose" cannot even be found.
This needs blocks #3.
I see in the GNUMakefile.os4 of clib4:
ifdef SPE
CC := ppc-amigaos-gcc-6.4.0
AS := ppc-amigaos-as-6.4.0
CMATH := -mfpu=dp_lite
CFLAGS := $(CFLAGS) -D__SPE__ -mspe -mtune=8540 -mcpu=8540 -mabi=spe -mfloat-gprs=double $(CMATH) -fno-inline-functions -fno-partial-inlining \
-fno-align-functions -fno-align-jumps -fno-align-loops -fno-align-labels -fno-inline-small-functions -fno-indirect-inlining -Wno-overflow -Wno-unused-but-set-variable -Wno-uninitialized #-Wdouble-promotion
AFLAGS := $(AFLAGS) -mvrsave -D__SPE__ -mspe -mtune=8540 -mcpu=8540 -mfloat-gprs=double $(CMATH) -Wno-overflow
endif
This may mean I need to change the makefile in ADTOOLS to define SPE somewhere when building clib4 for GCC 6. Does this make sense, @afxgroup ?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.