The linker issue is due to a bug in the way we find the path to the CRT
object files (crti.o, etc.).  We were assuming that if /usr/lib64 exists,
that's where we would find the 64-bit versions.  On Ubuntu 14.04, there is
a /usr/lib64, but that is not where the CRT object files live.

Here is the proposed fix (the change is just to the test after the 'elif'):

Index: osprey-gcc-4.2.0/gcc/config/i386/t-linux64
===================================================================
--- osprey-gcc-4.2.0/gcc/config/i386/t-linux64 (revision 4115)
+++ osprey-gcc-4.2.0/gcc/config/i386/t-linux64 (working copy)
@@ -6,7 +6,7 @@

 MULTILIB_OPTIONS = m64/m32
 MULTILIB_DIRNAMES = 64 32
-MULTILIB_OSDIRNAMES = $(shell if file /usr/lib/crti.o  -Lb |fgrep "ELF
32-bit" >/dev/null ; then  echo  "../lib64 ../lib"; elif [ -d /usr/lib64 ]
; then echo  "../lib64 ../lib32" ; else echo "../lib/x86_64-linux-gnu
../lib32" ; fi)
+MULTILIB_OSDIRNAMES = $(shell if file /usr/lib/crti.o  -Lb |fgrep "ELF
32-bit" >/dev/null ; then  echo  "../lib64 ../lib"; elif [ -f
/usr/lib64/crti.o ] ; then echo  "../lib64 ../lib32" ; else echo
"../lib/x86_64-linux-gnu ../lib32" ; fi)

 LIBGCC = stmp-multilib
 INSTALL_LIBGCC = install-multilib



On Fri, Aug 22, 2014 at 1:27 AM, Nancy <nancydream...@gmail.com> wrote:

> On Fri, Aug 22, 2014 at 2:46 PM, David Coakley <dcoak...@gmail.com> wrote:
> > There was a change to the way that siginfo is defined.  I was able to
> build
> > on Fedora 19 (gcc 4.8.3) with the following change:
> >
> > Index: osprey-gcc-4.2.0/gcc/config/i386/linux-unwind.h
> > ===================================================================
> > --- osprey-gcc-4.2.0/gcc/config/i386/linux-unwind.h (revision 4114)
> > +++ osprey-gcc-4.2.0/gcc/config/i386/linux-unwind.h (working copy)
> > @@ -137,9 +137,17 @@
> >      {
> >        struct rt_sigframe {
> >   int sig;
> > +#ifdef __have_siginfo_t
> > + siginfo_t *pinfo;
> > +#else
> >   struct siginfo *pinfo;
> > +#endif
> >   void *puc;
> > +#ifdef __have_siginfo_t
> > + siginfo_t info;
> > +#else
> >   struct siginfo info;
> > +#endif
> >   struct ucontext uc;
> >        } *rt_ = context->cfa;
> >        /* The void * cast is necessary to avoid an aliasing warning.
> >
> >
> > If it helps, I can check that in to the trunk as well.
> >
> Hi David,
>
> Your patch works for me again :) Thanks a lot!
>
> New linker issue:
> /home/nancy/work/build-open64-svn/osprey-gcc-4.2.0/host-unknown/gcc/xgcc
> -B/home/nancy/work/build-open64-svn/osprey-gcc-4.2.0/host-unknown/gcc/
> -m32
> -B/home/nancy/toolchains/open64/open64-gcc-4.2.0/x86_64-redhat-linux/bin/
> -B/home/nancy/toolchains/open64/open64-gcc-4.2.0/x86_64-redhat-linux/lib/
> -isystem
> /home/nancy/toolchains/open64/open64-gcc-4.2.0/x86_64-redhat-linux/include
> -isystem
> /home/nancy/toolchains/open64/open64-gcc-4.2.0/x86_64-redhat-linux/sys-include
> -O2  -O2 -O0 -g -DIs_True_On -DTARG_X8664  -DIN_GCC    -W -Wall
> -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes
> -Wold-style-definition  -isystem ./include  -fPIC -g
> -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED  -shared
> -nodefaultlibs -Wl,--soname=libgcc_s.so.1
> -Wl,--version-script=libgcc/./libgcc.map -o ./libgcc_s.so.1.tmp
> libgcc/./_muldi3_s.o libgcc/./_negdi2_s.o libgcc/./_lshrdi3_s.o
> libgcc/./_ashldi3_s.o libgcc/./_ashrdi3_s.o libgcc/./_cmpdi2_s.o
> libgcc/./_ucmpdi2_s.o libgcc/./_clear_cache_s.o
> libgcc/./_enable_execute_stack_s.o libgcc/./_trampoline_s.o
> libgcc/./__main_s.o libgcc/./_absvsi2_s.o libgcc/./_absvdi2_s.o
> libgcc/./_addvsi3_s.o libgcc/./_addvdi3_s.o libgcc/./_subvsi3_s.o
> libgcc/./_subvdi3_s.o libgcc/./_mulvsi3_s.o libgcc/./_mulvdi3_s.o
> libgcc/./_negvsi2_s.o libgcc/./_negvdi2_s.o libgcc/./_ctors_s.o
> libgcc/./_ffssi2_s.o libgcc/./_ffsdi2_s.o libgcc/./_clz_s.o
> libgcc/./_clzsi2_s.o libgcc/./_clzdi2_s.o libgcc/./_ctzsi2_s.o
> libgcc/./_ctzdi2_s.o libgcc/./_popcount_tab_s.o
> libgcc/./_popcountsi2_s.o libgcc/./_popcountdi2_s.o
> libgcc/./_paritysi2_s.o libgcc/./_paritydi2_s.o libgcc/./_powisf2_s.o
> libgcc/./_powidf2_s.o libgcc/./_powixf2_s.o libgcc/./_powitf2_s.o
> libgcc/./_mulsc3_s.o libgcc/./_muldc3_s.o libgcc/./_mulxc3_s.o
> libgcc/./_multc3_s.o libgcc/./_divsc3_s.o libgcc/./_divdc3_s.o
> libgcc/./_divxc3_s.o libgcc/./_divtc3_s.o libgcc/./_fixunssfsi_s.o
> libgcc/./_fixunsdfsi_s.o libgcc/./_fixunsxfsi_s.o
> libgcc/./_fixsfdi_s.o libgcc/./_fixunssfdi_s.o libgcc/./_floatdisf_s.o
> libgcc/./_floatundisf_s.o libgcc/./_fixdfdi_s.o
> libgcc/./_fixunsdfdi_s.o libgcc/./_floatdidf_s.o
> libgcc/./_floatundidf_s.o libgcc/./_fixxfdi_s.o
> libgcc/./_fixunsxfdi_s.o libgcc/./_floatdixf_s.o
> libgcc/./_floatundixf_s.o libgcc/./_fixtfdi_s.o
> libgcc/./_fixunstfdi_s.o libgcc/./_floatditf_s.o
> libgcc/./_floatunditf_s.o libgcc/./_divdi3_s.o libgcc/./_moddi3_s.o
> libgcc/./_udivdi3_s.o libgcc/./_umoddi3_s.o libgcc/./_udiv_w_sdiv_s.o
> libgcc/./_udivmoddi4_s.o libgcc/./unwind-dw2_s.o
> libgcc/./unwind-dw2-fde-glibc_s.o libgcc/./unwind-sjlj_s.o
> libgcc/./gthr-gnat_s.o libgcc/./unwind-c_s.o -lc && rm -f
> ./libgcc_s.so && if [ -f ./libgcc_s.so.1 ]; then mv -f ./libgcc_s.so.1
> ./libgcc_s.so.1.backup; else true; fi && mv ./libgcc_s.so.1.tmp
> ./libgcc_s.so.1 && ln -s libgcc_s.so.1 ./libgcc_s.so
> /usr/local/bin/ld: error: cannot open crti.o: 没有那个文件或目录(file or folder
> do not exist)
> /usr/local/bin/ld: error: cannot open crtn.o: 没有那个文件或目录(file or folder
> do not exist)
> collect2: ld returned 1 exit status
> make[5]: *** [libgcc_s.so] 错误 1
> make[5]:正在离开目录
> `/home/nancy/work/build-open64-svn/osprey-gcc-4.2.0/host-unknown/gcc'
> make[4]: *** [stmp-multilib] 错误 2
> make[4]:正在离开目录
> `/home/nancy/work/build-open64-svn/osprey-gcc-4.2.0/host-unknown/gcc'
> make[3]: *** [all-gcc] 错误 2
> make[3]:正在离开目录 `/home/nancy/work/build-open64-svn/osprey-gcc-4.2.0'
> make[2]: *** [all] 错误 2
> make[2]:正在离开目录 `/home/nancy/work/build-open64-svn/osprey-gcc-4.2.0'
> make[1]: *** [cc1] 错误 2
> make[1]:正在离开目录 `/home/nancy/work/build-open64-svn'
> make: *** [build] 错误 2
>
>
>
> --
> Best Regards,
> Yu Rong Tan
>
------------------------------------------------------------------------------
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel

Reply via email to