Re: [Tinycc-devel] PATCH: Use R_AARCH64_MOVW_UABS_G* instead of R_AARCH64_CALL26.
Just tested on: jullien@gcc113:~/tinycc$ uname -a Linux gcc113 3.13.0-92-generic #139-Ubuntu SMP Tue Jun 28 20:45:34 UTC 2016 aarch64 aarch64 aarch64 GNU/Linux Fully working, no error at all! Thanks Christian -Original Message- From: Tinycc-devel [mailto:tinycc-devel-bounces+eligis=orange...@nongnu.org] On Behalf Of Michael Matz Sent: vendredi 14 octobre 2016 17:45 To: tinycc-devel@nongnu.org Subject: Re: [Tinycc-devel] PATCH: Use R_AARCH64_MOVW_UABS_G* instead of R_AARCH64_CALL26. Hi, On Tue, 11 Oct 2016, Edmund Grimley Evans wrote: > Me: > > > That's interesting. Perhaps that could be extended to AArch64 > > instead of using the ugly work-around... > > I've pushed my work-around as I'm not sure when I'll be able to > investigate the linker... Just for the benefit of the list: that's fixed now. Ciao, Michael. ___ Tinycc-devel mailing list Tinycc-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/tinycc-devel ___ Tinycc-devel mailing list Tinycc-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/tinycc-devel
Re: [Tinycc-devel] PATCH: Use R_AARCH64_MOVW_UABS_G* instead of R_AARCH64_CALL26.
Michael Matz: > > I've pushed my work-around as I'm not sure when I'll be able to > > investigate the linker... > > Just for the benefit of the list: that's fixed now. Many thanks! Edmund ___ Tinycc-devel mailing list Tinycc-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/tinycc-devel
Re: [Tinycc-devel] PATCH: Use R_AARCH64_MOVW_UABS_G* instead of R_AARCH64_CALL26.
Hi, On Tue, 11 Oct 2016, Edmund Grimley Evans wrote: > Me: > > > That's interesting. Perhaps that could be extended to AArch64 instead > > of using the ugly work-around... > > I've pushed my work-around as I'm not sure when I'll be able to > investigate the linker... Just for the benefit of the list: that's fixed now. Ciao, Michael. ___ Tinycc-devel mailing list Tinycc-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/tinycc-devel
Re: [Tinycc-devel] PATCH: Use R_AARCH64_MOVW_UABS_G* instead of R_AARCH64_CALL26.
Me: > That's interesting. Perhaps that could be extended to AArch64 instead > of using the ugly work-around... I've pushed my work-around as I'm not sure when I'll be able to investigate the linker... ___ Tinycc-devel mailing list Tinycc-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/tinycc-devel
Re: [Tinycc-devel] PATCH: Use R_AARCH64_MOVW_UABS_G* instead of R_AARCH64_CALL26.
> >This is a work-around for TCC's linker not building a PLT when TCC is > >invoked with "-run". > > Hm, are you sure? See > > 9750d0b725d65296364c08451a985c717bf1890d > Author: Michael Matz ... 2014-04-06 00:30:22 > > x86_64: Create proper PLT and GOT also for -run > > 01c041923474750a236da02561f0f8835445848b > Author: Michael Matz ... 2014-04-06 01:02:42 > > arm: Use proper PLT/GOT for -run. That's interesting. Perhaps that could be extended to AArch64 instead of using the ugly work-around... ___ Tinycc-devel mailing list Tinycc-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/tinycc-devel
Re: [Tinycc-devel] PATCH: Use R_AARCH64_MOVW_UABS_G* instead of R_AARCH64_CALL26.
Edmund Grimley Evans wrote: This is a work-around for TCC's linker not building a PLT when TCC is invoked with "-run". Hm, are you sure? See 9750d0b725d65296364c08451a985c717bf1890d Author: Michael Matz ... 2014-04-06 00:30:22 x86_64: Create proper PLT and GOT also for -run 01c041923474750a236da02561f0f8835445848b Author: Michael Matz ... 2014-04-06 01:02:42 arm: Use proper PLT/GOT for -run. -- gr ___ Tinycc-devel mailing list Tinycc-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/tinycc-devel
Re: [Tinycc-devel] PATCH: Use R_AARCH64_MOVW_UABS_G* instead of R_AARCH64_CALL26.
Ops, I read too fast yesterday on my phone and I omitted your patch bound in mail (I thought it was already pushed). I'm really sorry AS IT FULLY WORKS (including all possible tests). Many thanks. From: Tinycc-devel [mailto:tinycc-devel-bounces+eligis=orange...@nongnu.org] On Behalf Of Christian Jullien Sent: mardi 11 octobre 2016 06:47 To: tinycc-devel@nongnu.org Subject: Re: [Tinycc-devel] PATCH: Use R_AARCH64_MOVW_UABS_G* instead of R_AARCH64_CALL26. Thank you Edmund, but it does not work (see below). Btw, do you know that can ask for an account on GCC Compile Farm Project (see: https://gcc.gnu.org/wiki/CompileFarm) Here you can have remote access on different machines for free. Among them you have: name port disk CPU Notes gcc113 500GB 8x2.4 GHz aarch64 / 32 GB RAM / APM X-Gene Mustang board / Ubuntu 14.04.3 LTS gcc114 500GB 8x2.4 GHz aarch64 / 32 GB RAM / APM X-Gene Mustang board / Ubuntu 14.04.3 LTS gcc115 500GB 8x2.4 GHz aarch64 / 32 GB RAM / APM X-Gene Mustang board / Ubuntu 14.04.3 LTS gcc116 500GB 8x2.4 GHz aarch64 / 32 GB RAM / APM X-Gene Mustang board / Ubuntu 14.04.3 LTS This is where I tested: jullien@gcc113:~/tinycc$ more config.h /* Automatically generated by configure - do not modify */ #ifndef CONFIG_TCCDIR # define CONFIG_TCCDIR "/usr/local/lib/tcc" #endif #define GCC_MAJOR 4 #define GCC_MINOR 8 #define TCC_VERSION "0.9.26" jullien@gcc113:~/tinycc$ export LD_LIBRARY_PATH=/usr/local/lib/tcc jullien@gcc113:~/tinycc$ ./configure Binary directory /usr/local/bin TinyCC directory/usr/local/lib/tcc Library directory /usr/local/lib Include directory /usr/local/include Manual directory/usr/local/share/man Info directory /usr/local/share/info Doc directory /usr/local/share/doc Target root prefix Source path /home/jullien/tinycc C compiler gcc Target OS Linux CPU aarch64 Big Endian no gprof enabled no cross compilers no use libgcc no Creating config.mak and config.h config.h is unchanged jullien@gcc113:~/tinycc$ make gcc -o tcc.o -c tcc.c -DCONFIG_LDDIR="\"lib\"" -DCONFIG_MULTIARCHDIR="\"aarch64- linux-gnu\"" -DTCC_TARGET_ARM64 -Wall -g -O2 -Wdeclaration-after-statement -Wno- deprecated-declarations -Wno-strict-aliasing -Wno-pointer-sign -Wno-sign-compare -Wno-unused-result -Wno-uninitialized -fno-strict-aliasing -I. gcc -o libtcc.o -c libtcc.c -DCONFIG_LDDIR="\"lib\"" -DCONFIG_MULTIARCHDIR="\"aa rch64-linux-gnu\"" -DTCC_TARGET_ARM64 -Wall -g -O2 -Wdeclaration-after-statement -Wno-deprecated-declarations -Wno-strict-aliasing -Wno-pointer-sign -Wno-sign-c ompare -Wno-unused-result -Wno-uninitialized -fno-strict-aliasing -I. gcc -o tccpp.o -c tccpp.c -DCONFIG_LDDIR="\"lib\"" -DCONFIG_MULTIARCHDIR="\"aarc h64-linux-gnu\"" -DTCC_TARGET_ARM64 -Wall -g -O2 -Wdeclaration-after-statement - Wno-deprecated-declarations -Wno-strict-aliasing -Wno-pointer-sign -Wno-sign-com pare -Wno-unused-result -Wno-uninitialized -fno-strict-aliasing -I. gcc -o tccgen.o -c tccgen.c -DCONFIG_LDDIR="\"lib\"" -DCONFIG_MULTIARCHDIR="\"aa rch64-linux-gnu\"" -DTCC_TARGET_ARM64 -Wall -g -O2 -Wdeclaration-after-statement -Wno-deprecated-declarations -Wno-strict-aliasing -Wno-pointer-sign -Wno-sign-c ompare -Wno-unused-result -Wno-uninitialized -fno-strict-aliasing -I. gcc -o tccelf.o -c tccelf.c -DCONFIG_LDDIR="\"lib\"" -DCONFIG_MULTIARCHDIR="\"aa rch64-linux-gnu\"" -DTCC_TARGET_ARM64 -Wall -g -O2 -Wdeclaration-after-statement -Wno-deprecated-declarations -Wno-strict-aliasing -Wno-pointer-sign -Wno-sign-c ompare -Wno-unused-result -Wno-uninitialized -fno-strict-aliasing -I. gcc -o tccasm.o -c tccasm.c -DCONFIG_LDDIR="\"lib\"" -DCONFIG_MULTIARCHDIR="\"aa rch64-linux-gnu\"" -DTCC_TARGET_ARM64 -Wall -g -O2 -Wdeclaration-after-statement -Wno-deprecated-declarations -Wno-strict-aliasing -Wno-pointer-sign -Wno-sign-c ompare -Wno-unused-result -Wno-uninitialized -fno-strict-aliasing -I. gcc -o tccrun.o -c tccrun.c -DCONFIG_LDDIR="\"lib\"" -DCONFIG_MULTIARCHDIR="\"aa rch64-linux-gnu\"" -DTCC_TARGET_ARM64 -Wall -g -O2 -Wdeclaration-after-statement -Wno-deprecated-declarations -Wno-strict-aliasing -Wno-pointer-sign -Wno-sign-c ompare -Wno-unused-result -Wno-uninitialized -fno-strict-aliasing -I. gcc -o arm64-gen.o -c arm64-gen.c -DCONFIG_LDDIR="\"lib\"" -DCONFIG_MULTIARCHDIR ="\"aarch64-linux-gnu\"" -DTCC_TARGET_ARM64 -Wall -g -O2 -Wdeclaration-after-sta tement -Wno-deprecated-declarations -Wno-strict-aliasing -Wno-pointer-sign -Wno- sign-compare -Wno-unuse
Re: [Tinycc-devel] PATCH: Use R_AARCH64_MOVW_UABS_G* instead of R_AARCH64_CALL26.
Thank you Edmund, but it does not work (see below). Btw, do you know that can ask for an account on GCC Compile Farm Project (see: https://gcc.gnu.org/wiki/CompileFarm) Here you can have remote access on different machines for free. Among them you have: name port disk CPU Notes gcc113 500GB 8x2.4 GHz aarch64 / 32 GB RAM / APM X-Gene Mustang board / Ubuntu 14.04.3 LTS gcc114 500GB 8x2.4 GHz aarch64 / 32 GB RAM / APM X-Gene Mustang board / Ubuntu 14.04.3 LTS gcc115 500GB 8x2.4 GHz aarch64 / 32 GB RAM / APM X-Gene Mustang board / Ubuntu 14.04.3 LTS gcc116 500GB 8x2.4 GHz aarch64 / 32 GB RAM / APM X-Gene Mustang board / Ubuntu 14.04.3 LTS This is where I tested: jullien@gcc113:~/tinycc$ more config.h /* Automatically generated by configure - do not modify */ #ifndef CONFIG_TCCDIR # define CONFIG_TCCDIR "/usr/local/lib/tcc" #endif #define GCC_MAJOR 4 #define GCC_MINOR 8 #define TCC_VERSION "0.9.26" jullien@gcc113:~/tinycc$ export LD_LIBRARY_PATH=/usr/local/lib/tcc jullien@gcc113:~/tinycc$ ./configure Binary directory /usr/local/bin TinyCC directory/usr/local/lib/tcc Library directory /usr/local/lib Include directory /usr/local/include Manual directory/usr/local/share/man Info directory /usr/local/share/info Doc directory /usr/local/share/doc Target root prefix Source path /home/jullien/tinycc C compiler gcc Target OS Linux CPU aarch64 Big Endian no gprof enabled no cross compilers no use libgcc no Creating config.mak and config.h config.h is unchanged jullien@gcc113:~/tinycc$ make gcc -o tcc.o -c tcc.c -DCONFIG_LDDIR="\"lib\"" -DCONFIG_MULTIARCHDIR="\"aarch64- linux-gnu\"" -DTCC_TARGET_ARM64 -Wall -g -O2 -Wdeclaration-after-statement -Wno- deprecated-declarations -Wno-strict-aliasing -Wno-pointer-sign -Wno-sign-compare -Wno-unused-result -Wno-uninitialized -fno-strict-aliasing -I. gcc -o libtcc.o -c libtcc.c -DCONFIG_LDDIR="\"lib\"" -DCONFIG_MULTIARCHDIR="\"aa rch64-linux-gnu\"" -DTCC_TARGET_ARM64 -Wall -g -O2 -Wdeclaration-after-statement -Wno-deprecated-declarations -Wno-strict-aliasing -Wno-pointer-sign -Wno-sign-c ompare -Wno-unused-result -Wno-uninitialized -fno-strict-aliasing -I. gcc -o tccpp.o -c tccpp.c -DCONFIG_LDDIR="\"lib\"" -DCONFIG_MULTIARCHDIR="\"aarc h64-linux-gnu\"" -DTCC_TARGET_ARM64 -Wall -g -O2 -Wdeclaration-after-statement - Wno-deprecated-declarations -Wno-strict-aliasing -Wno-pointer-sign -Wno-sign-com pare -Wno-unused-result -Wno-uninitialized -fno-strict-aliasing -I. gcc -o tccgen.o -c tccgen.c -DCONFIG_LDDIR="\"lib\"" -DCONFIG_MULTIARCHDIR="\"aa rch64-linux-gnu\"" -DTCC_TARGET_ARM64 -Wall -g -O2 -Wdeclaration-after-statement -Wno-deprecated-declarations -Wno-strict-aliasing -Wno-pointer-sign -Wno-sign-c ompare -Wno-unused-result -Wno-uninitialized -fno-strict-aliasing -I. gcc -o tccelf.o -c tccelf.c -DCONFIG_LDDIR="\"lib\"" -DCONFIG_MULTIARCHDIR="\"aa rch64-linux-gnu\"" -DTCC_TARGET_ARM64 -Wall -g -O2 -Wdeclaration-after-statement -Wno-deprecated-declarations -Wno-strict-aliasing -Wno-pointer-sign -Wno-sign-c ompare -Wno-unused-result -Wno-uninitialized -fno-strict-aliasing -I. gcc -o tccasm.o -c tccasm.c -DCONFIG_LDDIR="\"lib\"" -DCONFIG_MULTIARCHDIR="\"aa rch64-linux-gnu\"" -DTCC_TARGET_ARM64 -Wall -g -O2 -Wdeclaration-after-statement -Wno-deprecated-declarations -Wno-strict-aliasing -Wno-pointer-sign -Wno-sign-c ompare -Wno-unused-result -Wno-uninitialized -fno-strict-aliasing -I. gcc -o tccrun.o -c tccrun.c -DCONFIG_LDDIR="\"lib\"" -DCONFIG_MULTIARCHDIR="\"aa rch64-linux-gnu\"" -DTCC_TARGET_ARM64 -Wall -g -O2 -Wdeclaration-after-statement -Wno-deprecated-declarations -Wno-strict-aliasing -Wno-pointer-sign -Wno-sign-c ompare -Wno-unused-result -Wno-uninitialized -fno-strict-aliasing -I. gcc -o arm64-gen.o -c arm64-gen.c -DCONFIG_LDDIR="\"lib\"" -DCONFIG_MULTIARCHDIR ="\"aarch64-linux-gnu\"" -DTCC_TARGET_ARM64 -Wall -g -O2 -Wdeclaration-after-sta tement -Wno-deprecated-declarations -Wno-strict-aliasing -Wno-pointer-sign -Wno- sign-compare -Wno-unused-result -Wno-uninitialized -fno-strict-aliasing -I. ar rcs libtcc.a libtcc.o tccpp.o tccgen.o tccelf.o tccasm.o tccrun.o arm64-gen.o gcc -o tcc tcc.o libtcc.a -Wall -g -O2 -Wdeclaration-after-statement -Wno-deprec ated-declarations -Wno-strict-aliasing -Wno-pointer-sign -Wno-sign-compare -Wno- unused-result -Wno-uninitialized -fno-strict-aliasing -I. -lm -ldl make -C lib native make[1]: Entering directory `/home/jullien/tinycc/lib' ar rcs ../libtcc1.a arm64/lib-arm64.o make[1]: Leaving directory `/home/jullien/tinycc/lib' jullien@gcc113:~/tinycc$ make test make -C tests make[1]: Entering directory `/home/jullien/tinycc/tests' hello-exe ../tcc -B.. -I../include -I.. -I.. ../examples/ex1.c -o hello || (../tcc -vv; ex it 1) && ./hello Hello World