Pierre Free Pascal wrote:

-----Message d'origine-----
De : [email protected] [mailto:fpc-devel-
[email protected]] De la part de Mark Morgan Lloyd
Envoyé : jeudi 8 août 2013 11:02
À : [email protected]
Objet : [fpc-devel] Compiling for libgdb, and using make -j on larger
SPARC
systems

I'm having one of my periodic attempts to check FPC trunk on various
architectures, this was going to be a question about an exception when
trying to link libgdb into 2.6.2 but I find the behaviour has changed so
I mention that for information only. Also for information only, when I
used -j 8 for 2.6.2 there was a message about left-over directories, I
similarly don't get that with trunk (or it's intermittent) so let's
leave it.

So the current situation is this: when building FPC trunk on Debian
Linux on SPARC, everything is fine if I use NOGDB=1. However, if I try
to use libgdb (which has in the past but not particularly recently
worked OK on this system) I get this

make GDB_V603=1 OPT='-O- -gl' all
..
./fpmake compile --localunitdir=.. --globalunitdir=../packages
--os=linux --cpu=sparc -o -Ur -o -Xs -o -O2 -o -n -o
-Fu/usr/local/src/fpc/fpc-trunk/rtl/units/sparc-linux -o
-Fu/usr/local/src/fpc/fpc-trunk/packages/paszlib/units/sparc-linux -o
-Fu/usr/local/src/fpc/fpc-trunk/packages/fcl-process/units/sparc-linux
-o -Fu/usr/local/src/fpc/fpc-trunk/packages/hash/units/sparc-linux -o
-Fu/usr/local/src/fpc/fpc-trunk/packages/libtar/units/sparc-linux -o
-Fu/usr/local/src/fpc/fpc-trunk/packages/fpmkunit/units/sparc-linux -o
-O- -o -gl -o -vt -o -dRELEASE
--compiler=/usr/local/src/fpc/fpc-trunk/compiler/ppcsparc -bu
Start compiling package ide for target sparc-linux.
LibGDB was found, build IDE with debugger support
Warning: Unable to determine the libgcc path.
        Compiling compiler/compunit.pas
        Compiling /usr/local/src/fpc/fpc-trunk/compiler/ppheap.pas
        Compiling /usr/local/src/fpc/fpc-trunk/compiler/cutils.pas
..
        Compiling /usr/local/src/fpc/fpc-trunk/compiler/dbgdwarf.pas
        Compiling /usr/local/src/fpc/fpc-trunk/compiler/browcol.pas
Warning: Unable to determine the libgcc path.
        Compiling fp.pas
        Compiling fpcatch.pas
        Compiling fpcompil.pas
..
        Compiling fpcodtmp.pas
        Compiling fptemplt.pas
        Linking bin/sparc-linux/fp
The installer encountered the following error:
External command "/usr/local/src/fpc/fpc-trunk/compiler/ppcsparc -Tlinux
-FEbin/sparc-linux -FUunits/sparc-linux/
-Fu/usr/local/src/fpc/fpc-trunk/rtl/units/sparc-linux/
-Fu/usr/local/src/fpc/fpc-trunk/packages/fv/units/sparc-linux/
-Fu/usr/local/src/fpc/fpc-trunk/packages/chm/units/sparc-linux/
-Fu/usr/local/src/fpc/fpc-trunk/packages/fcl-xml/units/sparc-linux/
-Fu/usr/local/src/fpc/fpc-trunk/packages/fcl-base/units/sparc-linux/
-Fu/usr/local/src/fpc/fpc-trunk/packages/fcl-res/units/sparc-linux/
-Fu/usr/local/src/fpc/fpc-trunk/packages/iconvenc/units/sparc-linux/
-Fu/usr/local/src/fpc/fpc-trunk/packages/regexpr/units/sparc-linux/
-Fu/usr/local/src/fpc/fpc-trunk/packages/gdbint/units/sparc-linux/ -Fl
-Ur -Xs -O2 -n -Fu/usr/local/src/fpc/fpc-trunk/rtl/units/sparc-linux
-Fu/usr/local/src/fpc/fpc-trunk/packages/paszlib/units/sparc-linux
-Fu/usr/local/src/fpc/fpc-trunk/packages/fcl-process/units/sparc-linux
-Fu/usr/local/src/fpc/fpc-trunk/packages/hash/units/sparc-linux
-Fu/usr/local/src/fpc/fpc-trunk/packages/libtar/units/sparc-linux
-Fu/usr/local/src/fpc/fpc-trunk/packages/fpmkunit/units/sparc-linux -O-
-gl -vt -dRELEASE -Ur -dNOCATCH -dBrowserCol -dGDB -dsparc
-Fu../compiler -Fu../compiler/sparc -Fu../compiler/targets
-Fu../compiler/systems -Fi../compiler/sparc -Fi../compiler -Sg
-Fl../libgdb/linux/sparc/ -viq fp.pas" failed with exit code 1. Console
output:
Target OS: Linux for SPARC
Compiling fp.pas
fp.pas(27,2)  (2004) Start reading includefile globdir.inc
Compiling fpcatch.pas
..
Writing Resource String Table file: fpcatch.rst
Assembling fpcatch
Writing Resource String Table file: fp.rst
Assembling fp
Linking bin/sparc-linux/fp
fp.pas(554) Error: Error while linking
fp.pas(554) Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted

make[2]: Leaving directory `/usr/local/src/fpc/fpc-trunk/ide'
make[1]: Leaving directory `/usr/local/src/fpc/fpc-trunk'

The obvious first question is: are those references to libgcc
significant, and what file is being looked for? The normal binary
installer hasn't been run on this system since FPC's been built on it
from source since something like 2.0.

Any and all suggestions appreciated.

>   Hi Mark,
>
> this is one of the problems with fpmake, sometimes we seems to loose
> the output of the calls to the assembler or the linker :(
>
>   Could you try to run make inside ide directory
> and add -Xd option to OPT?
> Does this solve your problem?
>
> I get the same kind of error on i386-linux system because
> the compiler chooses  a system library for libreadline.a
> instead of the one that is in GDBLIBDIR...
>
>
> Pierre Muller

That looks like it fixes the problem I described earlier, and takes me back to the one I saw on 2.6.2 (plus possibly some slightly older ones).

../fpc-trunk/ide$ make GDB_V603=1 OPT='-O- -gl -Xd' all
./fpmake compile --localunitdir=.. --globalunitdir=../packages --os=linux --cpu=sparc -o -Fu../rtl/units/sparc-linux -o -Fu../packages/paszlib/units/sparc-linux -o -Fu../packages/fcl-process/units/sparc-linux -o -Fu../packages/hash/units/sparc-linux -o -Fu../packages/libtar/units/sparc-linux -o -Fu../packages/fpmkunit/units/sparc-linux -o -O- -o -gl -o -Xd --compiler=/usr/local/bin/ppcsparc -bu
Start compiling package ide for target sparc-linux.
LibGDB was found, build IDE with debugger support
Warning: Unable to determine the libgcc path.
       Compiling fp.pas
..
       Compiling fpcalc.pas
The installer encountered the following error:
External command "/usr/local/bin/ppcsparc -Tlinux -FEbin/sparc-linux -FUunits/sparc-linux/ -Fu/usr/local/src/fpc/fpc-trunk/rtl/units/sparc-linux/ -Fu/usr/local/src/fpc/fpc-trunk/packages/fv/units/sparc-linux/ -Fu/usr/local/src/fpc/fpc-trunk/packages/chm/units/sparc-linux/ -Fu/usr/local/src/fpc/fpc-trunk/packages/fcl-xml/units/sparc-linux/ -Fu/usr/local/src/fpc/fpc-trunk/packages/fcl-base/units/sparc-linux/ -Fu/usr/local/src/fpc/fpc-trunk/packages/fcl-res/units/sparc-linux/ -Fu/usr/local/src/fpc/fpc-trunk/packages/iconvenc/units/sparc-linux/ -Fu/usr/local/src/fpc/fpc-trunk/packages/regexpr/units/sparc-linux/ -Fu/usr/local/src/fpc/fpc-trunk/packages/gdbint/units/sparc-linux/ -Fl -Fu../rtl/units/sparc-linux -Fu../packages/paszlib/units/sparc-linux -Fu../packages/fcl-process/units/sparc-linux -Fu../packages/hash/units/sparc-linux -Fu../packages/libtar/units/sparc-linux -Fu../packages/fpmkunit/units/sparc-linux -O- -gl -Xd -Ur -dNOCATCH -dBrowserCol -dGDB -dsparc -Fu../compiler -Fu../compiler/sparc -Fu../compiler/targets -Fu../compiler/systems -Fi../compiler/sparc -Fi../compiler -Sg -Fl../libgdb/linux/sparc/ -viq fp.pas" failed with exit code 217. Console output:
Free Pascal Compiler version 2.6.2 [2013/08/05] for sparc
Copyright (c) 1993-2012 by Florian Klaempfl and others
Target OS: Linux for SPARC
Compiling fp.pas
..
Compiling /usr/local/src/fpc/fpc-trunk/compiler/sparc/itcpugas.pas
Assembling itcpugas
Compiling fpswitch.pas
Compiling fpvars.pas
Compiling fpdebug.pas
Compiling fpregs.pas
Compiling fpvars.pas
Compiling fputils.pas
Compiling fpvars.pas
Compiling fpcalc.pas
fpcalc.pas(236,3) Note: Local variable "fpucw" not used
Writing Resource String Table file: fpcalc.rst
Assembling fpcalc
Assembling fpvars
fputils.pas(239,5) Note: Local variable "C" is assigned but never used
Assembling fputils
fpregs.pas(281,8) Note: Local variable "code" is assigned but never used
fpregs.pas(822,12) Note: Local variable "value" not used
fpregs.pas(825,8) Note: Local variable "res" is assigned but never used
fpregs.pas(827,8) Note: Local variable "err" is assigned but never used
fpregs.pas(997,8) Note: Local variable "top" not used
fpregs.pas(1002,7) Note: Local variable "TypeStr" not used
fpregs.pas(1251,8) Note: Local variable "reg" is assigned but never used
fpregs.pas(1251,12) Note: Local variable "value" not used
fpregs.pas(1254,8) Note: Local variable "res" is assigned but never used
fpregs.pas(1256,8) Note: Local variable "err" is assigned but never used
fpregs.pas(1381,8) Note: Local variable "top" not used
fpregs.pas(1382,8) Note: Local variable "color" is assigned but never used
fpregs.pas(1384,8) Note: Local variable "i" not used
fpregs.pas(1386,7) Note: Local variable "TypeStr" not used
Fatal: Compilation aborted
An unhandled exception occurred at $001E61C0 :
EDivByZero : Division by zero
  $001E61C0  TCGASSIGNMENTNODE__PASS_GENERATE_CODE,  line 785 of ncgld.pas

At this point: what's actually running, i.e. what command should I apply gdb to to get a decent backtrace?

--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]
_______________________________________________
fpc-devel maillist  -  [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to