tinycc-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Tinycc-devel] arm shared build issue


From: Herman ten Brugge
Subject: Re: [Tinycc-devel] arm shared build issue
Date: Wed, 5 Aug 2020 15:28:58 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0

It works on my raspberry pi.
Did you also compile tcc with the new mob branch?

    Herman

On 2020-08-05 15:02, Christian JULLIEN wrote:
Thanks but are you sure it is fixed?

jullien@sims4:~/tinycc $ git pull
warning: redirecting to https://repo.or.cz/r/tinycc.git/
Already up to date.
jullien@sims4:~/tinycc $ ./configure --cc=tcc --disable-static --prefix=$(pwd)/dist
Binary directory    /home/jullien/tinycc/dist/bin
TinyCC directory    /home/jullien/tinycc/dist/lib/tcc
Library directory   /home/jullien/tinycc/dist/lib
Include directory   /home/jullien/tinycc/dist/include
Manual directory    /home/jullien/tinycc/dist/share/man
Info directory      /home/jullien/tinycc/dist/share/info
Doc directory       /home/jullien/tinycc/dist/share/doc
Source path         /home/jullien/tinycc
C compiler          tcc (0.927)
Target OS           Linux
CPU                 arm
Triplet             arm-linux-gnueabihf
Config              static=no arm_eabihf arm_vfp arm_vfp
Creating config.mak and config.h
config.h is unchanged
jullien@sims4:~/tinycc $ make
tcc -o tcc.o -c tcc.c -DCONFIG_TRIPLET="\"arm-linux-gnueabihf\"" -DTCC_CPU_VERSION=7 -DTCC_TARGET_ARM -DTCC_ARM_EABI -DTCC_ARM_HARDFLOAT -DTCC_ARM_VFP       -DONE_SOURCE=0 -Wall -O2 -I. 
tcc -o libtcc.o -c libtcc.c -DCONFIG_TRIPLET="\"arm-linux-gnueabihf\"" -DTCC_CPU_VERSION=7 -DTCC_TARGET_ARM -DTCC_ARM_EABI -DTCC_ARM_HARDFLOAT -DTCC_ARM_VFP       -DONE_SOURCE=0 -Wall -O2 -I.  -fPIC
tcc -o tccpp.o -c tccpp.c -DCONFIG_TRIPLET="\"arm-linux-gnueabihf\"" -DTCC_CPU_VERSION=7 -DTCC_TARGET_ARM -DTCC_ARM_EABI -DTCC_ARM_HARDFLOAT -DTCC_ARM_VFP       -DONE_SOURCE=0 -Wall -O2 -I.  -fPIC
tcc -o tccgen.o -c tccgen.c -DCONFIG_TRIPLET="\"arm-linux-gnueabihf\"" -DTCC_CPU_VERSION=7 -DTCC_TARGET_ARM -DTCC_ARM_EABI -DTCC_ARM_HARDFLOAT -DTCC_ARM_VFP       -DONE_SOURCE=0 -Wall -O2 -I.  -fPIC
tcc -o tccelf.o -c tccelf.c -DCONFIG_TRIPLET="\"arm-linux-gnueabihf\"" -DTCC_CPU_VERSION=7 -DTCC_TARGET_ARM -DTCC_ARM_EABI -DTCC_ARM_HARDFLOAT -DTCC_ARM_VFP       -DONE_SOURCE=0 -Wall -O2 -I.  -fPIC
tcc -o tccasm.o -c tccasm.c -DCONFIG_TRIPLET="\"arm-linux-gnueabihf\"" -DTCC_CPU_VERSION=7 -DTCC_TARGET_ARM -DTCC_ARM_EABI -DTCC_ARM_HARDFLOAT -DTCC_ARM_VFP       -DONE_SOURCE=0 -Wall -O2 -I.  -fPIC
tcc -o tccrun.o -c tccrun.c -DCONFIG_TRIPLET="\"arm-linux-gnueabihf\"" -DTCC_CPU_VERSION=7 -DTCC_TARGET_ARM -DTCC_ARM_EABI -DTCC_ARM_HARDFLOAT -DTCC_ARM_VFP       -DONE_SOURCE=0 -Wall -O2 -I.  -fPIC
tcc -o arm-gen.o -c arm-gen.c -DCONFIG_TRIPLET="\"arm-linux-gnueabihf\"" -DTCC_CPU_VERSION=7 -DTCC_TARGET_ARM -DTCC_ARM_EABI -DTCC_ARM_HARDFLOAT -DTCC_ARM_VFP       -DONE_SOURCE=0 -Wall -O2 -I.  -fPIC
tcc -o arm-link.o -c arm-link.c -DCONFIG_TRIPLET="\"arm-linux-gnueabihf\"" -DTCC_CPU_VERSION=7 -DTCC_TARGET_ARM -DTCC_ARM_EABI -DTCC_ARM_HARDFLOAT -DTCC_ARM_VFP       -DONE_SOURCE=0 -Wall -O2 -I.  -fPIC
tcc -o arm-asm.o -c arm-asm.c -DCONFIG_TRIPLET="\"arm-linux-gnueabihf\"" -DTCC_CPU_VERSION=7 -DTCC_TARGET_ARM -DTCC_ARM_EABI -DTCC_ARM_HARDFLOAT -DTCC_ARM_VFP       -DONE_SOURCE=0 -Wall -O2 -I.  -fPIC
tcc -shared -Wl,-soname,libtcc.so -o libtcc.so libtcc.o tccpp.o tccgen.o tccelf.o tccasm.o tccrun.o arm-gen.o arm-link.o arm-asm.o  -s -fPIC
tcc -o tcc tcc.o libtcc.so -lm -lpthread -ldl  -s  -Wl,-rpath,"/home/jullien/tinycc/dist/lib"
make[1]: Entering directory '/home/jullien/tinycc/lib'
../tcc -c libtcc1.c -o libtcc1.o -B.. -I..
../tcc -c armeabi.c -o armeabi.o -B.. -I..
../tcc -c alloca-arm.S -o alloca-arm.o -B.. -I..
../tcc -c armflush.c -o armflush.o -B.. -I..
../tcc -c fetch_and_add_arm.S -o fetch_and_add_arm.o -B.. -I..
../tcc -c dsohandle.c -o dsohandle.o -B.. -I..
../tcc -ar rcs ../libtcc1.a libtcc1.o armeabi.o alloca-arm.o armflush.o fetch_and_add_arm.o dsohandle.o
../tcc -c bt-exe.c -o ../bt-exe.o -B.. -I..
../tcc -c bt-log.c -o ../bt-log.o -B.. -I..
../tcc -c bcheck.c -o ../bcheck.o -B.. -I.. -g
make[1]: Leaving directory '/home/jullien/tinycc/lib'
perl ./texi2pod.pl tcc-doc.texi tcc-doc.pod
pod2man --section=1 --center="Tiny C Compiler" --release="0.9.27" tcc-doc.pod >tcc.1 && rm -f tcc-doc.pod
jullien@sims4:~/tinycc $ make install
-> "/home/jullien/tinycc/dist/bin" : tcc
-> "/home/jullien/tinycc/dist/lib/tcc" : libtcc1.a bcheck.o bt-exe.o bt-log.o
-> "/home/jullien/tinycc/dist/lib/tcc/include" : ./include/*.h ./tcclib.h
-> "/home/jullien/tinycc/dist/lib" : libtcc.so
-> "/home/jullien/tinycc/dist/include" : ./libtcc.h
-> "/home/jullien/tinycc/dist/share/man/man1" : tcc.1
-> "/home/jullien/tinycc/dist/share/info" : tcc-doc.info
-> "/home/jullien/tinycc/dist/share/doc" : tcc-doc.html
strip: /home/jullien/tinycc/dist/bin/stEeAqbs: section .interp lma 0x80d4 adjusted to 0x90d4
strip: /home/jullien/tinycc/dist/bin/stEeAqbs: section .dynsym lma 0x80f0 adjusted to 0x90ed
strip: /home/jullien/tinycc/dist/bin/stEeAqbs: section .dynstr lma 0x8640 adjusted to 0x963d
strip: /home/jullien/tinycc/dist/bin/stEeAqbs: section .hash lma 0x8adc adjusted to 0x9ad8
strip: /home/jullien/tinycc/dist/bin/stEeAqbs: section .rel.bss lma 0x8d38 adjusted to 0x9d34
strip: /home/jullien/tinycc/dist/bin/stEeAqbs: section .rel.got lma 0x8d48 adjusted to 0x9d44
strip: /home/jullien/tinycc/dist/bin/stEeAqbs: section .text lma 0x8ec8 adjusted to 0x9ec4
strip: /home/jullien/tinycc/dist/bin/stEeAqbs: section .rodata.cst4 lma 0xc714 adjusted to 0xd710
strip: /home/jullien/tinycc/dist/bin/stEeAqbs: section .ARM.extab lma 0xc718 adjusted to 0xd714
strip: /home/jullien/tinycc/dist/bin/stEeAqbs: section .ARM.exidx lma 0xc718 adjusted to 0xd714
strip: /home/jullien/tinycc/dist/bin/stEeAqbs: section .init lma 0xc720 adjusted to 0xd71c
strip: /home/jullien/tinycc/dist/bin/stEeAqbs: section .fini lma 0xc72c adjusted to 0xd728
strip: /home/jullien/tinycc/dist/bin/stEeAqbs: section .preinit_array lma 0xc734 adjusted to 0xd730
strip: /home/jullien/tinycc/dist/bin/stEeAqbs: section .init_array lma 0xc734 adjusted to 0xd730
strip: /home/jullien/tinycc/dist/bin/stEeAqbs: section .fini_array lma 0xc734 adjusted to 0xd730
strip: /home/jullien/tinycc/dist/bin/stEeAqbs: section .plt lma 0xc734 adjusted to 0xd730
strip: /home/jullien/tinycc/dist/bin/stEeAqbs: section .gnu.version lma 0xc97c adjusted to 0xd978
strip: /home/jullien/tinycc/dist/bin/stEeAqbs: section .gnu.version_r lma 0xca28 adjusted to 0xda22
strip: /home/jullien/tinycc/dist/bin/stEeAqbs: section `.gnu.version_r' can't be allocated in segment 3
LOAD: .interp .dynsym .dynstr .hash .rel.bss .rel.got .text .rodata.cst4 .ARM.extab .ARM.exidx .init .fini .preinit_array .init_array .fini_array .plt .gnu.version .gnu.version_r
jullien@sims4:~/tinycc $ ./dist/bin/tcc -v
./dist/bin/tcc: error while loading shared libraries: tcc.so: cannot open shared object file: No such file or directory
jullien@sims4:~/tinycc $ ldd ./dist/bin/tcc 
./dist/bin/tcc: error while loading shared libraries: ./dist/bin/tcc: unsupported version 0 of Verneed record
jullien@sims4:~/tinycc $ 




Le : 05 août 2020 à 14:02 (GMT +02:00)
De : "Herman ten Brugge via Tinycc-devel" <tinycc-devel@nongnu.org>
À : "tinycc-devel@nongnu.org" <tinycc-devel@nongnu.org>
Cc : "Herman ten Brugge" <hermantenbrugge@home.nl>
Objet : Re: [Tinycc-devel] arm shared build issue


I can reproduce the problem. I pushed on fix on mob.
The problem was that there was a stack unwinding section present that
was not present in the program headers section.

    Herman

On 2020-08-05 08:07, Christian JULLIEN wrote:
> Herman, thanks for recent DLL (shared) support on more platforms.
>
> Trying to play with recent arm shared support, I compiled tcc with this bash function
> on RPi arm:
>
> shared_build() {
>    echo === Boostrapping with $1 shared
>    ./configure --cc=$1 --disable-static --prefix=$(pwd)/dist
>    make # && make -k test
>    sudo make install-strip
>    $(pwd)/dist/bin/tcc -v || exit 1
>    sudo make uninstall
>    test `find dist -type f | wc -l` -eq 0 \
>        || (echo "Files remain after uninstall" && exit 2)
>    cp tcc ../tinycc-$1-dynamic
> }
>
> calling 'shared_build gcc' works:
> ...
> -> "/home/jullien/tinycc/dist/share/doc" : tcc-doc.html
> tcc version 0.9.27 (ARM Hard Float Linux)
>
> but with 'shared_build tcc' it gives:
> -> "/home/jullien/tinycc/dist/share/info" : tcc-doc.info
> -> "/home/jullien/tinycc/dist/share/doc" : tcc-doc.html
> strip: /home/jullien/tinycc/dist/bin/stZ0gMmP: section .interp lma 0x80d4 adjusted to 0x90d4
> strip: /home/jullien/tinycc/dist/bin/stZ0gMmP: section .dynsym lma 0x80f0 adjusted to 0x90ed
> strip: /home/jullien/tinycc/dist/bin/stZ0gMmP: section .dynstr lma 0x8640 adjusted to 0x963d
> strip: /home/jullien/tinycc/dist/bin/stZ0gMmP: section .hash lma 0x8adc adjusted to 0x9ad8
> strip: /home/jullien/tinycc/dist/bin/stZ0gMmP: section .rel.bss lma 0x8d38 adjusted to 0x9d34
> strip: /home/jullien/tinycc/dist/bin/stZ0gMmP: section .rel.got lma 0x8d48 adjusted to 0x9d44
> strip: /home/jullien/tinycc/dist/bin/stZ0gMmP: section .text lma 0x8ec8 adjusted to 0x9ec4
> strip: /home/jullien/tinycc/dist/bin/stZ0gMmP: section .rodata.cst4 lma 0xc714 adjusted to 0xd710
> strip: /home/jullien/tinycc/dist/bin/stZ0gMmP: section .ARM.extab lma 0xc718 adjusted to 0xd714
> strip: /home/jullien/tinycc/dist/bin/stZ0gMmP: section .ARM.exidx lma 0xc718 adjusted to 0xd714
> strip: /home/jullien/tinycc/dist/bin/stZ0gMmP: section .init lma 0xc720 adjusted to 0xd71c
> strip: /home/jullien/tinycc/dist/bin/stZ0gMmP: section .fini lma 0xc72c adjusted to 0xd728
> strip: /home/jullien/tinycc/dist/bin/stZ0gMmP: section .preinit_array lma 0xc734 adjusted to 0xd730
> strip: /home/jullien/tinycc/dist/bin/stZ0gMmP: section .init_array lma 0xc734 adjusted to 0xd730
> strip: /home/jullien/tinycc/dist/bin/stZ0gMmP: section .fini_array lma 0xc734 adjusted to 0xd730
> strip: /home/jullien/tinycc/dist/bin/stZ0gMmP: section .plt lma 0xc734 adjusted to 0xd730
> strip: /home/jullien/tinycc/dist/bin/stZ0gMmP: section .gnu.version lma 0xc97c adjusted to 0xd978
> strip: /home/jullien/tinycc/dist/bin/stZ0gMmP: section .gnu.version_r lma 0xca28 adjusted to 0xda22
> strip: /home/jullien/tinycc/dist/bin/stZ0gMmP: section `.gnu.version_r' can't be allocated in segment 3
> LOAD: .interp .dynsym .dynstr .hash .rel.bss .rel.got .text .rodata.cst4 .ARM.extab .ARM.exidx .init .fini .preinit_array .init_array .fini_array .plt .gnu.version .gnu.version_r
> /home/jullien/tinycc/dist/bin/tcc: error while loading shared libraries: tcc.so: cannot open shared object file: No such file or directory
>
>
> and:
>
> ldd ./dist/bin/tcc
> ./dist/bin/tcc: error while loading shared libraries: ./dist/bin/tcc: unsupported version 0 of Verneed record
>
> Am I missing something?
>
> C.


_______________________________________________
Tinycc-devel mailing list
Tinycc-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/tinycc-devel


reply via email to

[Prev in Thread] Current Thread [Next in Thread]