xgcc running when configured with --disable-bootstrap

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

 



When compiling gcc, I've sometimes seen errors arise from commands
where the compiler is xgcc, even when not bootstrapping.

Presumably this is the newly generated compiler being used as a second
stage to build essential run-time libraries, and not (as I used to
think) the --disable-bootstrap configure option being ignored.

So far so good ... but my question is, where does the configuration
(specifically Makefile) for that second stage build come from?

To be more specific : using the Debian Stretch gcc-6 source package
(gcc-6.3.0-18), I'm seeing problems with the second stage build of
libiberty which manifest later as the appended error; 
xgcc: error: ../libiberty/pic/concat.o: No such file or directory

Indeed there is no such file in 
gcc-objs/x86_64-pc-linux-gnu/libiberty/pic/
(in fact there isn't a pic/ folder either) though it's present in the
first stage build, in 
gcc-objs/libiberty/pic/

Why is the second stage build of libiberty so different? Well, let's
look at the Makefiles in each folder.
-----------------------------------------------------------------------
 diff '/home/brian/Projects/ghdl/2017/gcc-objs/libiberty/Makefile'
'/home/brian/Projects/ghdl/2017/gcc-objs/x86_64-pc-linux-
gnu/libiberty/Makefile' 

57c57
< CC = gcc
---
> CC = /home/brian/Projects/ghdl/2017/gcc-objs/./gcc/xgcc
-B/home/brian/Projects/ghdl/2017/gcc-objs/./gcc/
-B/opt/ghdl/gcc/x86_64-pc-linux-gnu/bin/ -B/opt/ghdl/gcc/x86_64-pc-
linux-gnu/lib/ -isystem /opt/ghdl/gcc/x86_64-pc-linux-gnu/include
-isystem /opt/ghdl/gcc/x86_64-pc-linux-gnu/sys-include -isystem
/home/brian/Projects/ghdl/2017/gcc-objs/sys-include   
64c64
< PICFLAG = -fpic
---
> PICFLAG = 
113c113
< enable_shared = yes
---
> enable_shared = no
-----------------------------------------------------------------------

... well the -fpic flag went missing somehow.

I'm not actually clear if this is intended behaviour but it seems odd.

At this point I'm stuck, having no clear idea what derives the latter
Makefile, or why it drops -fpic, or how to control the behaviour (other
than modifying the Makefile by hand each time I run Configure. There
HAS to be a better way!). Or why it used to work with gcc-4.9 but not
gcc-6.3.

But I'd like to know how these options get passed around and the
intended way to change them.

-- Brian

point of failure below...
----------------------------------------------------------------------
: # Make libgnatprj.so
/home/brian/Projects/ghdl/2017/gcc-objs/./gcc/xgcc
-B/home/brian/Projects/ghdl/2017/gcc-objs/./gcc/
-B/opt/ghdl/gcc/x86_64-pc-linux-gnu/bin/ -B/opt/ghdl/gcc/x86_64-pc-
linux-gnu/lib/ -isystem /opt/ghdl/gcc/x86_64-pc-linux-gnu/include
-isystem /opt/ghdl/gcc/x86_64-pc-linux-gnu/sys-include -isystem
/home/brian/Projects/ghdl/2017/gcc-objs/sys-include    -o
libgnatprj.so.6 -shared -fPIC -Wl,--soname,libgnatprj.so.6 -Wl,--no-
allow-shlib-undefined \
   obj-shared/ali.o obj-shared/ali-util.o obj-shared/butil.o obj-
shared/binderr.o obj-shared/errout.o obj-shared/erroutc.o obj-
shared/errutil.o obj-shared/err_vars.o obj-shared/fname-uf.o obj-
shared/fmap.o obj-shared/impunit.o obj-shared/lib-util.o obj-
shared/makeutl.o obj-shared/mlib.o obj-shared/mlib-fil.o obj-
shared/mlib-tgt.o obj-shared/mlib-tgt-specific.o obj-shared/mlib-utl.o
obj-shared/osint.o obj-shared/osint-c.o obj-shared/prj.o obj-
shared/prj-attr.o obj-shared/prj-attr-pm.o obj-shared/prj-com.o obj-
shared/prj-conf.o obj-shared/prj-dect.o obj-shared/prj-env.o obj-
shared/prj-err.o obj-shared/prj-ext.o obj-shared/prj-makr.o obj-
shared/prj-nmsc.o obj-shared/prj-pars.o obj-shared/prj-part.o obj-
shared/prj-pp.o obj-shared/prj-proc.o obj-shared/prj-strt.o obj-
shared/prj-tree.o obj-shared/prj-util.o obj-shared/restrict.o obj-
shared/rident.o obj-shared/scng.o obj-shared/sfn_scan.o obj-
shared/sinfo-cn.o obj-shared/sinput-c.o obj-shared/sinput-p.o obj-
shared/style.o obj-shared/styleg.o obj-shared/stylesw.o obj-
shared/switch.o obj-shared/switch-m.o obj-shared/targparm.o obj-
shared/tempdir.o obj-shared/sdefault.o obj-shared/link.o obj-
shared/prefix.o ../libiberty/pic/concat.o
../libiberty/pic/filename_cmp.o ../libiberty/pic/lrealpath.o
../libiberty/pic/safe-ctype.o ../libiberty/pic/xexit.o
../libiberty/pic/xmalloc.o ../libiberty/pic/xstrdup.o \
   -L../../gcc/ada/rts -lgnat-6 \
   -L../libgnatvsn -lgnatvsn 
xgcc: error: ../libiberty/pic/concat.o: No such file or directory
xgcc: error: ../libiberty/pic/filename_cmp.o: No such file or directory
xgcc: error: ../libiberty/pic/lrealpath.o: No such file or directory
xgcc: error: ../libiberty/pic/safe-ctype.o: No such file or directory
xgcc: error: ../libiberty/pic/xexit.o: No such file or directory
xgcc: error: ../libiberty/pic/xmalloc.o: No such file or directory
xgcc: error: ../libiberty/pic/xstrdup.o: No such file or directory
Makefile:76: recipe for target 'libgnatprj.so.6' failed
make[2]: *** [libgnatprj.so.6] Error 1
make[2]: Leaving directory '/home/brian/Projects/ghdl/2017/gcc-
objs/x86_64-pc-linux-gnu/libgnatprj'
Makefile:16418: recipe for target 'all-target-libgnatprj' failed



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux