[fpc-pascal] Building trunk
C Western
l at c-m-w.me.uk
Sat Nov 24 18:19:54 CET 2018
On 24/11/2018 15:19, C Western wrote:
> On 24/11/2018 12:30, Sven Barth via fpc-pascal wrote:
>> Am Sa., 24. Nov. 2018, 10:09 hat C Western <l at c-m-w.me.uk
>> <mailto:l at c-m-w.me.uk>> geschrieben:
>>
>> On 23/11/2018 09:50, Sven Barth via fpc-pascal wrote:
>> > Am Fr., 23. Nov. 2018, 10:26 hat C Western <l at c-m-w.me.uk
>> <mailto:l at c-m-w.me.uk>
>> > <mailto:l at c-m-w.me.uk <mailto:l at c-m-w.me.uk>>> geschrieben:
>> >
>> > I haven't been able to build trunk i386 fpc for a couple of
>> weeks. Is
>> > this supposed to be working, or have I misconfigured
>> something? (I
>> > don't
>> > think I have changed anything.) The output is below. I don't
>> think
>> > it is
>> > significant, but I am building on a 64 bit system, but with
>> a 32 bit
>> > starting compiler. (The 64 bit build with the 64 bit starting
>> > compiler
>> > works fine.)
>> >
>> >
>> > We have i386 trunk building on at least one x86_64-linux
>> machine, so
>> > it can't be a principal problem. :/
>> > Could you check whether it's FPC itself that segfaults or
>> something
>> > else and if the former try to retrieve a stacktrace, please?
>> >
>> > Regards,
>> > Sven
>> >
>> > _______________________________________________
>> > fpc-pascal maillist - fpc-pascal at lists.freepascal.org
>> <mailto:fpc-pascal at lists.freepascal.org>
>> > http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
>>
>> Looks like the ppc1 compiler crashes during setup:
>>
>> gdb) run
>> Starting program: /home/me/fpc/trunk/fpcsrc/compiler/ppc1
>>
>> Program received signal SIGSEGV, Segmentation fault.
>> 0x08068760 in INITTLS () at system.pp:543
>> 543 case phdr^.p_type of
>> (gdb) bt
>> #0 0x08068760 in INITTLS () at system.pp:543
>> #1 0x082a63fb in _FPC_PROC_START () at ./i386/si_prc.inc:105
>> (gdb) p phdr
>> $1 = (PPHDR) 0x8048034
>> (gdb) p phdr^
>> Cannot access memory at address 0x8048034
>>
>>
>> Looks like something related to the new threadvar handling. Though by
>> default that shouldn't be enabled... 🤔
>>
>> Regards,
>> Sven
>>
>> _______________________________________________
>> fpc-pascal maillist - fpc-pascal at lists.freepascal.org
>> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
>
> Some more information:
>
> It seems to work fine on Ubuntu (32 bit built on 64 bit OS, same
> machine). Comparing the binaries with objdump, it looks as though the
> Fedora one has an offset of 1000, which the Ununtu one does not, and
> the offset of 1000 needs to be applied to the program header address,
> but is not. On Fedora:
>
> ppc1: file format elf32-i386
> ppc1
> architecture: i386, flags 0x00000112:
> EXEC_P, HAS_SYMS, D_PAGED
> start address 0x082a63d0
>
> Program Header:
> LOAD off 0x00001000 vaddr 0x08049000 paddr 0x08049000 align 2**12
> filesz 0x0025d450 memsz 0x0025d450 flags r-x
> LOAD off 0x0025f000 vaddr 0x082a7000 paddr 0x082a7000 align 2**12
> filesz 0x00020f04 memsz 0x00020f04 flags r--
> LOAD off 0x00280000 vaddr 0x082c8000 paddr 0x082c8000 align 2**12
> filesz 0x000f7280 memsz 0x00102d84 flags rw-
> STACK off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**4
> filesz 0x00000000 memsz 0x00000000 flags rw-
>
> On Ubuntu:
>
> ./ppc1: file format elf32-i386
> ./ppc1
> architecture: i386, flags 0x00000112:
> EXEC_P, HAS_SYMS, D_PAGED
> start address 0x082a5470
>
> Program Header:
> LOAD off 0x00000000 vaddr 0x08048000 paddr 0x08048000 align 2**12
> filesz 0x0027e3f4 memsz 0x0027e3f4 flags r-x
> LOAD off 0x0027f000 vaddr 0x082c7000 paddr 0x082c7000 align 2**12
> filesz 0x000f7280 memsz 0x00102d84 flags rw-
> STACK off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**4
> filesz 0x00000000 memsz 0x00000000 flags rw-
>
> gdb indicates both versions try to access 0x8048034, but this is not
> mapped on the Fedora version.
>
> Colin
>
> _______________________________________________
> fpc-pascal maillist - fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
And going through the versions indicates the problem is introduced by:
r40272 | florian | 2018-11-07 22:03:02 +0000 (Wed, 07 Nov 2018) | 1 line
Changed paths:
M /trunk/compiler/cgbase.pas
M /trunk/compiler/x86/agx86att.pas
M /trunk/compiler/x86/cgx86.pas
M /trunk/compiler/x86/nx86ld.pas
M /trunk/rtl/linux/i386/si_prc.inc
M /trunk/rtl/linux/system.pp
+ i386-linux support for tls-based threadvars
More information about the fpc-pascal
mailing list