[fpc-pascal] Building trunk

C Western l at c-m-w.me.uk
Sat Nov 24 16:19:26 CET 2018


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




More information about the fpc-pascal mailing list