Building trunk

classic Classic list List threaded Threaded
30 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Building trunk

C Western-2
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.)

Colin


make distclean install PREFIX=/home/me/usr FPC=/home/me/fpc/bootstrap/ppc386
(....)
make[7]: Entering directory '/home/me/fpc/trunk/fpcsrc/rtl'
make -C linux all
make[8]: Entering directory '/home/me/fpc/trunk/fpcsrc/rtl/linux'
/home/me/fpc/trunk/fpcsrc/compiler/ppc1 -Ur -Ur -Xs -O2 -n -Fi../inc
-Fi../i386 -Fi../unix -Fii386 -FE.
-FU/home/me/fpc/trunk/fpcsrc/rtl/units/i386-linux -di386 -dRELEASE -Us
-Sg system.pp
make[8]: *** [Makefile:3912: system.ppu] Segmentation fault (core dumped)
make[8]: Leaving directory '/home/me/fpc/trunk/fpcsrc/rtl/linux'
make[7]: *** [Makefile:2057: linux_all] Error 2
make[7]: Leaving directory '/home/me/fpc/trunk/fpcsrc/rtl'
make[6]: *** [Makefile:4552: rtl] Error 2
make[6]: Leaving directory '/home/me/fpc/trunk/fpcsrc/compiler'
make[5]: *** [Makefile:4403: next] Error 2
make[5]: Leaving directory '/home/me/fpc/trunk/fpcsrc/compiler'
make[4]: *** [Makefile:4413: ppc2] Error 2
make[4]: Leaving directory '/home/me/fpc/trunk/fpcsrc/compiler'
make[3]: *** [Makefile:4422: cycle] Error 2
make[3]: Leaving directory '/home/me/fpc/trunk/fpcsrc/compiler'
make[2]: *** [Makefile:2834: compiler_cycle] Error 2
make[2]: Leaving directory '/home/me/fpc/trunk/fpcsrc'
make[1]: *** [Makefile:2866: build-stamp.i386-linux] Error 2
make[1]: Leaving directory '/home/me/fpc/trunk/fpcsrc'
make: *** [Makefile:2306: fpcsrc/build-stamp.i386-linux] Error 2



_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Building trunk

Free Pascal - General mailing list
Am Fr., 23. Nov. 2018, 10:26 hat C Western <[hidden email]> 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  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Building trunk

Pierre Muller
In reply to this post by C Western-2
Hi,

  you should always try to start with a release compiler.

If you have the latest i386 compiler installed start by:

cd fpcsrc/compiler
make distclean cycle OPT="-n" FPC=/path/to/release/ppc386

save the resulting ppc386 on success to /home/me/fpc/bootstrap/ppc386

and then start

make distclean install PREFIX=/home/me/usr FPC=/home/me/fpc/bootstrap/ppc386

If you have no i386 compiler installed,
use your x86_64 release with

cd fpcsrc/compiler
make distclean cycle OS_TARGET=linux CPU_TARGET=i386 OPT="-n" FPC=/path/to/release/ppcx64


  Please test this out and report if it solves your problem or not.


Pierre Muller

Le 23/11/2018 à 10:21, C Western a écrit :

> 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.)
>
> Colin
>
>
> make distclean install PREFIX=/home/me/usr FPC=/home/me/fpc/bootstrap/ppc386
> (....)
> make[7]: Entering directory '/home/me/fpc/trunk/fpcsrc/rtl'
> make -C linux all
> make[8]: Entering directory '/home/me/fpc/trunk/fpcsrc/rtl/linux'
> /home/me/fpc/trunk/fpcsrc/compiler/ppc1 -Ur -Ur -Xs -O2 -n -Fi../inc
> -Fi../i386 -Fi../unix -Fii386 -FE.
> -FU/home/me/fpc/trunk/fpcsrc/rtl/units/i386-linux -di386 -dRELEASE -Us
> -Sg system.pp
> make[8]: *** [Makefile:3912: system.ppu] Segmentation fault (core dumped)
> make[8]: Leaving directory '/home/me/fpc/trunk/fpcsrc/rtl/linux'
> make[7]: *** [Makefile:2057: linux_all] Error 2
> make[7]: Leaving directory '/home/me/fpc/trunk/fpcsrc/rtl'
> make[6]: *** [Makefile:4552: rtl] Error 2
> make[6]: Leaving directory '/home/me/fpc/trunk/fpcsrc/compiler'
> make[5]: *** [Makefile:4403: next] Error 2
> make[5]: Leaving directory '/home/me/fpc/trunk/fpcsrc/compiler'
> make[4]: *** [Makefile:4413: ppc2] Error 2
> make[4]: Leaving directory '/home/me/fpc/trunk/fpcsrc/compiler'
> make[3]: *** [Makefile:4422: cycle] Error 2
> make[3]: Leaving directory '/home/me/fpc/trunk/fpcsrc/compiler'
> make[2]: *** [Makefile:2834: compiler_cycle] Error 2
> make[2]: Leaving directory '/home/me/fpc/trunk/fpcsrc'
> make[1]: *** [Makefile:2866: build-stamp.i386-linux] Error 2
> make[1]: Leaving directory '/home/me/fpc/trunk/fpcsrc'
> make: *** [Makefile:2306: fpcsrc/build-stamp.i386-linux] Error 2
>
>
>
> _______________________________________________
> fpc-pascal maillist  -  [hidden email]
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
>
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Building trunk

C Western-2
The compiler I was starting with was obtained from a 3.0.4 release from
the fpc website. Trying:

make distclean cycle OPT="-n" OS_TARGET=linux CPU_TARGET=i386
FPC=~/fpc/bootstrap/ppcx64

goes further (or is it just different as it is a cross-compile?) but gives:

make[1]: Entering directory '/home/me/fpc/trunk/fpcsrc/compiler'
/usr/bin/mkdir -p i386/units/i386-linux
/usr/bin/mkdir -p i386/bin/i386-linux
/home/ctcmw/fpc/trunk/fpcsrc/compiler/ppcross386 -Pi386 -XPi386-linux-
-Xr -Fui386 -Fusystems -Fu../rtl/units/i386-linux -Fii386
-FEi386/bin/i386-linux -FUi386/units/i386-linux -n -di386 -dGDB
-dBROWSERLOG -Fux86 -Sew    -di386 -dGDB -dBROWSERLOG -Fux86 -Sew pp.pas
pp.pas(277,1) Error: Util i386-linux-ld not found, switching to external
linking
pp.pas(277,1) Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted
make[1]: *** [Makefile:4355: ppc386] Error 1
make[1]: Leaving directory '/home/me/fpc/trunk/fpcsrc/compiler'
make: *** [Makefile:4461: cycle] Error 2

The OS is Fedora 29, and I am reasonably certain a complete set of Gnu
i386 tools are present.

I will try and generate a backtrace as suggested by Sven later.

Colin



On 23/11/2018 09:52, Pierre Muller wrote:

> Hi,
>
>    you should always try to start with a release compiler.
>
> If you have the latest i386 compiler installed start by:
>
> cd fpcsrc/compiler
> make distclean cycle OPT="-n" FPC=/path/to/release/ppc386
>
> save the resulting ppc386 on success to /home/me/fpc/bootstrap/ppc386
>
> and then start
>
> make distclean install PREFIX=/home/me/usr FPC=/home/me/fpc/bootstrap/ppc386
>
> If you have no i386 compiler installed,
> use your x86_64 release with
>
> cd fpcsrc/compiler
> make distclean cycle OS_TARGET=linux CPU_TARGET=i386 OPT="-n" FPC=/path/to/release/ppcx64
>
>
>    Please test this out and report if it solves your problem or not.
>
>
> Pierre Muller
>
> Le 23/11/2018 à 10:21, C Western a écrit :
>> 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.)
>>
>> Colin
>>
>>
>> make distclean install PREFIX=/home/me/usr FPC=/home/me/fpc/bootstrap/ppc386
>> (....)
>> make[7]: Entering directory '/home/me/fpc/trunk/fpcsrc/rtl'
>> make -C linux all
>> make[8]: Entering directory '/home/me/fpc/trunk/fpcsrc/rtl/linux'
>> /home/me/fpc/trunk/fpcsrc/compiler/ppc1 -Ur -Ur -Xs -O2 -n -Fi../inc
>> -Fi../i386 -Fi../unix -Fii386 -FE.
>> -FU/home/me/fpc/trunk/fpcsrc/rtl/units/i386-linux -di386 -dRELEASE -Us
>> -Sg system.pp
>> make[8]: *** [Makefile:3912: system.ppu] Segmentation fault (core dumped)
>> make[8]: Leaving directory '/home/me/fpc/trunk/fpcsrc/rtl/linux'
>> make[7]: *** [Makefile:2057: linux_all] Error 2
>> make[7]: Leaving directory '/home/me/fpc/trunk/fpcsrc/rtl'
>> make[6]: *** [Makefile:4552: rtl] Error 2
>> make[6]: Leaving directory '/home/me/fpc/trunk/fpcsrc/compiler'
>> make[5]: *** [Makefile:4403: next] Error 2
>> make[5]: Leaving directory '/home/me/fpc/trunk/fpcsrc/compiler'
>> make[4]: *** [Makefile:4413: ppc2] Error 2
>> make[4]: Leaving directory '/home/me/fpc/trunk/fpcsrc/compiler'
>> make[3]: *** [Makefile:4422: cycle] Error 2
>> make[3]: Leaving directory '/home/me/fpc/trunk/fpcsrc/compiler'
>> make[2]: *** [Makefile:2834: compiler_cycle] Error 2
>> make[2]: Leaving directory '/home/me/fpc/trunk/fpcsrc'
>> make[1]: *** [Makefile:2866: build-stamp.i386-linux] Error 2
>> make[1]: Leaving directory '/home/me/fpc/trunk/fpcsrc'
>> make: *** [Makefile:2306: fpcsrc/build-stamp.i386-linux] Error 2
>>
>>
>>
>> _______________________________________________
>> fpc-pascal maillist  -  [hidden email]
>> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
>>
> _______________________________________________
> fpc-pascal maillist  -  [hidden email]
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal


_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Building trunk

Joost van der Sluis
On 11/23/18 2:48 PM, C Western wrote:
> make distclean cycle OPT="-n" OS_TARGET=linux CPU_TARGET=i386
> FPC=~/fpc/bootstrap/ppcx64
>
> /home/ctcmw/fpc/trunk/fpcsrc/compiler/ppcross386 -Pi386 -XPi386-linux-
> -Xr -Fui386 -Fusystems -Fu../rtl/units/i386-linux -Fii386
> -FEi386/bin/i386-linux -FUi386/units/i386-linux -n -di386 -dGDB
> -dBROWSERLOG -Fux86 -Sew    -di386 -dGDB -dBROWSERLOG -Fux86 -Sew pp.pas
> pp.pas(277,1) Error: Util i386-linux-ld not found, switching to external
> linking

> I will try and generate a backtrace as suggested by Sven later.

No need to. The compiler does not crash. It cannot find i386-linux-ld.

You need the binutils for cross-compilation. See the buildfaq.

Or, create them yourself. Add the following bash-scripts somewhere in
your path and make them executable: (Works on Fedora, might be different
on other systems)

i386-linux-as:
--------------------------
#!/bin/bash
# name this file /usr/bin/i386-linux-as
as --32 $@
--------------------------

i386-linux-ld:

--------------------------
#!/bin/bash
# name this file /usr/bin/i386-linux-ld
ld -A elf32-i386 $@
--------------------------


Regards,

Joost.
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Building trunk

C Western-2
In reply to this post by Free Pascal - General mailing list
On 23/11/2018 09:50, Sven Barth via fpc-pascal wrote:

> Am Fr., 23. Nov. 2018, 10:26 hat C Western <[hidden email]
> <mailto:[hidden email]>> 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  -  [hidden email]
> 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

_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Building trunk

C Western-2
In reply to this post by Joost van der Sluis
On 23/11/2018 13:58, Joost van der Sluis wrote:

> On 11/23/18 2:48 PM, C Western wrote:
>> make distclean cycle OPT="-n" OS_TARGET=linux CPU_TARGET=i386
>> FPC=~/fpc/bootstrap/ppcx64
>>
>> /home/ctcmw/fpc/trunk/fpcsrc/compiler/ppcross386 -Pi386
>> -XPi386-linux- -Xr -Fui386 -Fusystems -Fu../rtl/units/i386-linux
>> -Fii386 -FEi386/bin/i386-linux -FUi386/units/i386-linux -n -di386
>> -dGDB -dBROWSERLOG -Fux86 -Sew    -di386 -dGDB -dBROWSERLOG -Fux86
>> -Sew pp.pas
>> pp.pas(277,1) Error: Util i386-linux-ld not found, switching to
>> external linking
>
>> I will try and generate a backtrace as suggested by Sven later.
>
> No need to. The compiler does not crash. It cannot find i386-linux-ld.
>
> You need the binutils for cross-compilation. See the buildfaq.
>
> Or, create them yourself. Add the following bash-scripts somewhere in
> your path and make them executable: (Works on Fedora, might be
> different on other systems)
>
> i386-linux-as:
> --------------------------
> #!/bin/bash
> # name this file /usr/bin/i386-linux-as
> as --32 $@
> --------------------------
>
> i386-linux-ld:
>
> --------------------------
> #!/bin/bash
> # name this file /usr/bin/i386-linux-ld
> ld -A elf32-i386 $@
> --------------------------
>
>
> Regards,
>
> Joost.
> _______________________________________________
> fpc-pascal maillist  -  [hidden email]
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Creating i386-linux-ld allows the make distclean cycle to complete.
However the resulting compiler (ppc386) gives a segmentation fault on
startup, just as I had with the previous approach. See my other message
for the stack trace.

Colin

_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Building trunk

Free Pascal - General mailing list
In reply to this post by C Western-2
Am Sa., 24. Nov. 2018, 10:09 hat C Western <[hidden email]> geschrieben:
On 23/11/2018 09:50, Sven Barth via fpc-pascal wrote:
> Am Fr., 23. Nov. 2018, 10:26 hat C Western <[hidden email]
> <mailto:[hidden email]>> 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  -  [hidden email]
> 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  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Building trunk

C Western-2
On 24/11/2018 12:30, Sven Barth via fpc-pascal wrote:

> Am Sa., 24. Nov. 2018, 10:09 hat C Western <[hidden email]
> <mailto:[hidden email]>> geschrieben:
>
>     On 23/11/2018 09:50, Sven Barth via fpc-pascal wrote:
>     > Am Fr., 23. Nov. 2018, 10:26 hat C Western <[hidden email]
>     <mailto:[hidden email]>
>     > <mailto:[hidden email] <mailto:[hidden email]>>> 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  - [hidden email]
>     <mailto:[hidden email]>
>     > 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  -  [hidden email]
> 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  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Building trunk

C Western-2
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 <[hidden email]
>> <mailto:[hidden email]>> geschrieben:
>>
>>     On 23/11/2018 09:50, Sven Barth via fpc-pascal wrote:
>>     > Am Fr., 23. Nov. 2018, 10:26 hat C Western <[hidden email]
>>     <mailto:[hidden email]>
>>     > <mailto:[hidden email] <mailto:[hidden email]>>> 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  - [hidden email]
>>     <mailto:[hidden email]>
>>     > 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  -  [hidden email]
>> 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  -  [hidden email]
> 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

_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Building trunk

Florian Klämpfl
In reply to this post by C Western-2
Am 24.11.2018 um 10:08 schrieb C Western:

> On 23/11/2018 09:50, Sven Barth via fpc-pascal wrote:
>> Am Fr., 23. Nov. 2018, 10:26 hat C Western <[hidden email] <mailto:[hidden email]>> 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  -  [hidden email]
>> 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

Can you please check what value phdr has at the crash location after applying the following patch?

diff --git a/rtl/linux/system.pp b/rtl/linux/system.pp
index 0d7ed2b152..74b4592ace 100644
--- a/rtl/linux/system.pp
+++ b/rtl/linux/system.pp
@@ -525,6 +525,8 @@ procedure InitTLS; [public,alias:'FPC_INITTLS'];
     while assigned(auxp^) do
       inc(auxp);
     inc(auxp);
+    phdr:=nil;
+    phnum:=0;
     { now we are at the auxillary vector }
     while assigned(auxp^) do
       begin
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Building trunk

C Western-2
On 24/11/2018 22:21, Florian Klämpfl wrote:

> Am 24.11.2018 um 10:08 schrieb C Western:
>> On 23/11/2018 09:50, Sven Barth via fpc-pascal wrote:
>>> Am Fr., 23. Nov. 2018, 10:26 hat C Western <[hidden email] <mailto:[hidden email]>> 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  -  [hidden email]
>>> 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
> Can you please check what value phdr has at the crash location after applying the following patch?
>
> diff --git a/rtl/linux/system.pp b/rtl/linux/system.pp
> index 0d7ed2b152..74b4592ace 100644
> --- a/rtl/linux/system.pp
> +++ b/rtl/linux/system.pp
> @@ -525,6 +525,8 @@ procedure InitTLS; [public,alias:'FPC_INITTLS'];
>       while assigned(auxp^) do
>         inc(auxp);
>       inc(auxp);
> +    phdr:=nil;
> +    phnum:=0;
>       { now we are at the auxillary vector }
>       while assigned(auxp^) do
>         begin
> _______________________________________________
> fpc-pascal maillist  -  [hidden email]
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

That gives the same value as shown above, even after applying the patch.
Single stepping the code indicates that both variables are assigned:
(Some lines deleted).

Breakpoint 1, INITTLS () at system.pp:523
523        auxp:=ppointer(envp);
(gdb) n
525        while assigned(auxp^) do
(gdb) n
533            case plongint(auxp)^ of
(gdb) n
535                phdr:=pphdr(ppointer(auxp+1)^);
(gdb) n
539            inc(auxp,2);
(gdb) p phdr
$3 = (PPHDR) 0x8048034
(gdb) p phdr^
Cannot access memory at address 0x8048034
(gdb) n
533            case plongint(auxp)^ of
(gdb) n
539            inc(auxp,2);
(gdb) n
533            case plongint(auxp)^ of
(gdb) n
537                phnum:=pdword(auxp+1)^;
(gdb) n
539            inc(auxp,2);
(gdb) p phnum
$4 = 4
(gdb)
543        for i:=1 to phnum do
(gdb) n
545            case phdr^.p_type of
(gdb) n

Program received signal SIGSEGV, Segmentation fault.
0x0806ef01 in INITTLS () at system.pp:545
545            case phdr^.p_type of
(gdb) p phdr
$5 = (PPHDR) 0x8048034
(gdb)

Colin

_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Building trunk

Florian Klämpfl
Am 25.11.2018 um 12:20 schrieb C Western:

> On 24/11/2018 22:21, Florian Klämpfl wrote:
>> Am 24.11.2018 um 10:08 schrieb C Western:
>>> On 23/11/2018 09:50, Sven Barth via fpc-pascal wrote:
>>>> Am Fr., 23. Nov. 2018, 10:26 hat C Western <[hidden email] <mailto:[hidden email]>> 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  -  [hidden email]
>>>> 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
>> Can you please check what value phdr has at the crash location after applying the following patch?
>>
>> diff --git a/rtl/linux/system.pp b/rtl/linux/system.pp
>> index 0d7ed2b152..74b4592ace 100644
>> --- a/rtl/linux/system.pp
>> +++ b/rtl/linux/system.pp
>> @@ -525,6 +525,8 @@ procedure InitTLS; [public,alias:'FPC_INITTLS'];
>>       while assigned(auxp^) do
>>         inc(auxp);
>>       inc(auxp);
>> +    phdr:=nil;
>> +    phnum:=0;
>>       { now we are at the auxillary vector }
>>       while assigned(auxp^) do
>>         begin
>> _______________________________________________
>> fpc-pascal maillist  -  [hidden email]
>> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
>
> That gives the same value as shown above, even after applying the patch. Single stepping the code indicates that both
> variables are assigned: (Some lines deleted).

This is pretty strange then. This code is pretty simple and in general, tls initialization should be done regardless if
FPC uses it for threadvars or not. What version of Fedora are you using?
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Building trunk

C Western-2
On 25/11/2018 12:01, Florian Klämpfl wrote:

> Am 25.11.2018 um 12:20 schrieb C Western:
>> On 24/11/2018 22:21, Florian Klämpfl wrote:
>>> Am 24.11.2018 um 10:08 schrieb C Western:
>>>> On 23/11/2018 09:50, Sven Barth via fpc-pascal wrote:
>>>>> Am Fr., 23. Nov. 2018, 10:26 hat C Western <[hidden email] <mailto:[hidden email]>> 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  -  [hidden email]
>>>>> 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
>>> Can you please check what value phdr has at the crash location after applying the following patch?
>>>
>>> diff --git a/rtl/linux/system.pp b/rtl/linux/system.pp
>>> index 0d7ed2b152..74b4592ace 100644
>>> --- a/rtl/linux/system.pp
>>> +++ b/rtl/linux/system.pp
>>> @@ -525,6 +525,8 @@ procedure InitTLS; [public,alias:'FPC_INITTLS'];
>>>        while assigned(auxp^) do
>>>          inc(auxp);
>>>        inc(auxp);
>>> +    phdr:=nil;
>>> +    phnum:=0;
>>>        { now we are at the auxillary vector }
>>>        while assigned(auxp^) do
>>>          begin
>>> _______________________________________________
>>> fpc-pascal maillist  -  [hidden email]
>>> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
>> That gives the same value as shown above, even after applying the patch. Single stepping the code indicates that both
>> variables are assigned: (Some lines deleted).
> This is pretty strange then. This code is pretty simple and in general, tls initialization should be done regardless if
> FPC uses it for threadvars or not. What version of Fedora are you using?
> _______________________________________________
> fpc-pascal maillist  -  [hidden email]
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Fedora 29 (64 bit). Did you see my other message in the thread about a
different offset in program header when compiled under Fedora and
Ubuntu? (It works on Ubuntu). It is though an offset needs to be applied
to find the program header, but I can't see where to find it.

Colin

_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Building trunk

Florian Klämpfl
Am 25.11.2018 um 13:06 schrieb C Western:

>>>> fpc-pascal maillist  -  [hidden email]
>>>> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
>>> That gives the same value as shown above, even after applying the patch. Single stepping the code indicates that both
>>> variables are assigned: (Some lines deleted).
>> This is pretty strange then. This code is pretty simple and in general, tls initialization should be done regardless if
>> FPC uses it for threadvars or not. What version of Fedora are you using?
>> _______________________________________________
>> fpc-pascal maillist  -  [hidden email]
>> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
>
> Fedora 29 (64 bit). Did you see my other message in the thread about a different offset in program header when compiled
> under Fedora and Ubuntu? (It works on Ubuntu). It is though an offset needs to be applied to find the program header,
> but I can't see where to find it.

I am not aware that somewhere a fixed offset is applied. All info is read from the auxiliary data and the header.

_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Building trunk

Florian Klämpfl
Am 25.11.2018 um 13:51 schrieb Florian Klämpfl:

> Am 25.11.2018 um 13:06 schrieb C Western:
>>>>> fpc-pascal maillist  -  [hidden email]
>>>>> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
>>>> That gives the same value as shown above, even after applying the patch. Single stepping the code indicates that both
>>>> variables are assigned: (Some lines deleted).
>>> This is pretty strange then. This code is pretty simple and in general, tls initialization should be done regardless if
>>> FPC uses it for threadvars or not. What version of Fedora are you using?
>>> _______________________________________________
>>> fpc-pascal maillist  -  [hidden email]
>>> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
>>
>> Fedora 29 (64 bit). Did you see my other message in the thread about a different offset in program header when compiled
>> under Fedora and Ubuntu? (It works on Ubuntu). It is though an offset needs to be applied to find the program header,
>> but I can't see where to find it.
>
> I am not aware that somewhere a fixed offset is applied. All info is read from the auxiliary data and the header.
>

You mean the offset field in the header? I cannot imaging how the offset in the header could influence the header itself?
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Building trunk

Jonas Maebe-3
In reply to this post by Florian Klämpfl
On 25/11/18 13:51, Florian Klämpfl wrote:
> I am not aware that somewhere a fixed offset is applied. All info is read from the auxiliary data and the header.

You can have a load address offset in case there is a PT_PHDR. From
http://www.gabriel.urdhr.fr/2015/01/22/elf-linking/ :

// Simplified code from the GNU dynamic linker source code:
for (ph = phdr; ph < &phdr[phnum]; ++ph)
   if (ph->p_type == PT_PHDR)
     main_map->l_addr = (ElfW(Addr)) phdr - ph->p_vaddr;

There doesn't seem to be one in Colin's program though.


Jonas
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Building trunk

Florian Klämpfl
Am 25.11.2018 um 13:58 schrieb Jonas Maebe:
> On 25/11/18 13:51, Florian Klämpfl wrote:
>> I am not aware that somewhere a fixed offset is applied. All info is read from the auxiliary data and the header.
>
> You can have a load address offset in case there is a PT_PHDR.

Yes.

> From http://www.gabriel.urdhr.fr/2015/01/22/elf-linking/ :
>
> // Simplified code from the GNU dynamic linker source code:
> for (ph = phdr; ph < &phdr[phnum]; ++ph)
>   if (ph->p_type == PT_PHDR)
>     main_map->l_addr = (ElfW(Addr)) phdr - ph->p_vaddr;
>
> There doesn't seem to be one in Colin's program though.

Indeed. The program header itself seems to be wrong/interpreted wrong.
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Building trunk

C Western-2
What generates the header? Is it fpc, an external linker or the loader?

Colin
Sent from my mobile.
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Building trunk

Jonas Maebe-3
On 25/11/18 14:30, Colin Western wrote:
> What generates the header? Is it fpc, an external linker or the loader?

The linker.


Jonas
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
12