tinycc-devel
[Top][All Lists]
Advanced

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

Re: [Tinycc-devel] When is planned to be released the next versionof Tcc


From: Pursuer
Subject: Re: [Tinycc-devel] When is planned to be released the next versionof Tcc?
Date: Sun, 23 Dec 2018 23:09:39 +0800

I found out that I need to specify the CROSS_TARGET in config.mak manually to cross-compile tcc.
And the Makefile may miss something.

arm-eabihf_FILES=$(arm_FILES)

should be inserted into line 169 (I think. )

Now we can cross-compile to target arm-eabihf .

If CROSS_TARGET is empty, Makefile will use NATIVE_TARGET as target instead. Maybe you should check this value.

the NATIVE_TARGET is determined by CONFIG_XXX and ARCH

By the way. How about maintaining this project on github?


------------------ Original ------------------
From:  "Barath Aron"<address@hidden>;
Date:  Sun, Dec 23, 2018 10:23 PM
To:  "tinycc-devel"<address@hidden>;
Subject:  Re: [Tinycc-devel] When is planned to be released the next versionof Tcc?

Oh, I missed that, sorry.

conftest returns "arm-linux-gnueabihf" as expected, but the test in the
next line (configure:323):
   if test -n "$tt" -a -f "/usr/lib/$tt/crti.o" ; then
is not true, because I do not have a directory such
/usr/lib/arm-linux-gnueabihf

[OFF]
It is funny though, conftest converts __ARM_EABI__ and __ARM_PCS_VFP
into a misty "gnueabihf", and then configure tries to decode this stuff
into TCC_CONFIG_ARM and TCC_ARM_EABI based on a mysterious assumption
("/usr/lib/$tt/crti.o"). Sidenote: this triplet thing is the most
shittiest thing in autotools (I know, tcc does not use autotools).
That's why I prefer scconfig (http://repo.hu/projects/scconfig/) for my
projects.
[ON]

Aron


On 12/23/18 3:07 PM, Christian Jullien wrote:
> As said, it's a temporary tool deleted by ./configure right after it's use.
>
> rm -f $TMPN* $CONFTEST
>
> Can you trace configure script to see how it uses $CONFTEST in different places and why configure.mak is not correct?
>
> C.
>
> -----Original Message-----
> From: Tinycc-devel [mailto:address@hidden On Behalf Of Barath Aron
> Sent: dimanche 23 décembre 2018 15:02
> To: address@hidden
> Subject: Re: [Tinycc-devel] When is planned to be released the next version of Tcc?
>
> I just ran:
> $ gcc conftest.c -o conftest && ./conftest triplet
> arm-linux-gnueabihf
>
> Although, it is strange, I do not have this executable after running
> configure. Maybe configure decided to not use it?
>
>
> On 12/23/18 2:43 PM, Christian Jullien wrote:
>> Triplet is given by the temporary conftest tool. You can make it with:
>>
>> $ gcc conftest.c -o conftest && ./conftest triplet
>> arm-linux-gnueabihf
>>
>> Try to debug this very small C program to see why triplet is not  defined on your system.
>>
>> -----Original Message-----
>> From: Tinycc-devel [mailto:address@hidden On Behalf Of Barath Aron
>> Sent: dimanche 23 décembre 2018 14:32
>> To: address@hidden
>> Subject: Re: [Tinycc-devel] When is planned to be released the next version of Tcc?
>>
>> What is in your triplet? Mine is empty.
>>
>> On 12/23/18 2:22 PM, Christian Jullien wrote:
>>> On Raspbian, running ./configure I get:
>>>
>>> address@hidden:~/tinycc $ more config.mak
>>> # Automatically generated by configure - do not modify
>>> prefix=/usr/local
>>> bindir=$(DESTDIR)/usr/local/bin
>>> tccdir=$(DESTDIR)/usr/local/lib/tcc
>>> libdir=$(DESTDIR)/usr/local/lib
>>> includedir=$(DESTDIR)/usr/local/include
>>> mandir=$(DESTDIR)/usr/local/share/man
>>> infodir=$(DESTDIR)/usr/local/share/info
>>> docdir=$(DESTDIR)/usr/local/share/doc
>>> CC=gcc
>>> GCC_MAJOR=6
>>> GCC_MINOR=3
>>> AR=ar
>>> STRIP=strip -s -R .comment -R .note
>>> CFLAGS=-Wall -g -O2 -Wdeclaration-after-statement -fno-strict-aliasing -Wno-pointer-sign -Wno-sign-compare -Wno-unused-result
>>> LDFLAGS=
>>> LIBSUF=.a
>>> EXESUF=
>>> DLLSUF=.so
>>> NATIVE_DEFINES+=-DCONFIG_TRIPLET="\"arm-linux-gnueabihf\""
>>> NATIVE_DEFINES+=-DTCC_CPU_VERSION=7
>>> ARCH=arm
>>> TARGETOS=Linux
>>> CONFIG_arm_eabihf=yes
>>> CONFIG_arm_vfp=yes
>>> CONFIG_arm_vfp=yes
>>> VERSION = 0.9.27
>>> TOPSRC=$(TOP)
>>>
>>> This generated file is used by Makefile
>>> Line 11: include $(TOP)/config.mak
>>>
>>> Then
>>> Line 77: NATIVE_DEFINES_$(CONFIG_arm_eabihf) += -DTCC_ARM_EABI -DTCC_ARM_HARDFLOAT
>>>
>>> IMHO, ./configure does something odd around line 336 with
>>>
>>>          if test "$cpu" = "arm" ; then
>>>            if test "${triplet%eabihf}" != "$triplet" ; then
>>>               confvars="$confvars arm_eabihf arm_vfp"
>>>            elif test "${triplet%eabi}" != "$triplet" ; then
>>>               confvars="$confvars arm_eabi"
>>>            fi
>>>            if grep -s -q "^Features.* \(vfp\|iwmmxt\) " /proc/cpuinfo ; then
>>>               confvars="$confvars arm_vfp"
>>>            fi
>>>          fi
>>>
>>>
>>> On my RPi it executes:
>>>
>>>            if test "${triplet%eabihf}" != "$triplet" ; then
>>>               confvars="$confvars arm_eabihf arm_vfp"
>>>
>>> Which, then results to -DTCC_ARM_EABI -DTCC_ARM_HARDFLOAT in Makefile.
>>>
>>> C.
>>>
>>> -----Original Message-----
>>> From: Tinycc-devel [mailto:address@hidden On Behalf Of Barath Aron
>>> Sent: dimanche 23 décembre 2018 13:55
>>> To: address@hidden
>>> Subject: Re: [Tinycc-devel] When is planned to be released the next version of Tcc?
>>>
>>> I figured out. ARM_EXIDX was skipped because TCC_ARM_EABI was not
>>> defined. What I did was just run ./configure without any arguments and
>>> then a "make". Maybe this provides a clue to the maintainers.
>>>
>>> After hacking the defines (-DTCC_ARM_EABI -DTCC_ARM_HARDFLOAT), tcc now
>>> does not crash during linking, because it now cannot compile. Weird.
>>>
>>> Aron
>>>
>>>
>>> On 12/23/18 1:18 PM, Barath Aron wrote:
>>>> In tccelf.c:2359, it clearly jumps to the end of the loop.
>>>> And dies in the next loop: /* second short pass to update... */
>>>>
>>>> Take this gdb fragment as an explanation:
>>>>
>>>> Breakpoint 3, tcc_load_object_file (s1=0x45a098, address@hidden,
>>>>        fd=4562744, address@hidden, file_offset=4563600, address@hidden)
>>>>        at tccelf.c:2357
>>>> 2357            sh_name = (char *) strsec + sh->sh_name;
>>>> (gdb) p i
>>>> $21 = 6
>>>> (gdb) n
>>>> 2359            if (sh->sh_type != SHT_PROGBITS &&
>>>> (gdb) p *sh
>>>> $22 = {sh_name = 79, sh_type = 1879048193, sh_flags = 130, sh_addr = 0,
>>>>      sh_offset = 176, sh_size = 8, sh_link = 2, sh_info = 0, sh_addralign
>>>> = 4,
>>>>      sh_entsize = 0}
>>>> (gdb) n
>>>> 2439        next: ;
>>>> (gdb) n
>>>> 2354            if (i == ehdr.e_shstrndx)
>>>> (gdb) p i
>>>> $23 = 7
>>>>
>>>> 1879048193 == 0x70000001 == SHT_ARM_EXIDX
>>>>
>>>> Aron
>>>>
>>>>
>>>> On 12/23/18 11:52 AM, Daniel Glöckner wrote:
>>>>> On Sun, Dec 23, 2018 at 11:44:50AM +0100, Barath Aron wrote:
>>>>>> I traced the whole object loading procedure with gdb:
>>>>>> - ARM_EXIDX (section 6) is definitely not loaded, I traced it with gdb.
>>>>> Where did tcc decide to skip ARM_EXIDX?
>>>>>
>>>>> _______________________________________________
>>>>> Tinycc-devel mailing list
>>>>> address@hidden
>>>>> https://lists.nongnu.org/mailman/listinfo/tinycc-devel
>>>> _______________________________________________
>>>> Tinycc-devel mailing list
>>>> address@hidden
>>>> https://lists.nongnu.org/mailman/listinfo/tinycc-devel
>>> _______________________________________________
>>> Tinycc-devel mailing list
>>> address@hidden
>>> https://lists.nongnu.org/mailman/listinfo/tinycc-devel
>>>
>>>
>>> _______________________________________________
>>> Tinycc-devel mailing list
>>> address@hidden
>>> https://lists.nongnu.org/mailman/listinfo/tinycc-devel
>> _______________________________________________
>> Tinycc-devel mailing list
>> address@hidden
>> https://lists.nongnu.org/mailman/listinfo/tinycc-devel
>>
>>
>> _______________________________________________
>> Tinycc-devel mailing list
>> address@hidden
>> https://lists.nongnu.org/mailman/listinfo/tinycc-devel
>
> _______________________________________________
> Tinycc-devel mailing list
> address@hidden
> https://lists.nongnu.org/mailman/listinfo/tinycc-devel
>
>
> _______________________________________________
> Tinycc-devel mailing list
> address@hidden
> https://lists.nongnu.org/mailman/listinfo/tinycc-devel


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

reply via email to

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