Have you tried to compile a small program with gcc -m32? Does it work? If
yes, you may try the following commands:
gcc -m32 -print-file-name=crti.o
gcc -m32 -print-file-name=crtn.o
gcc -m64 -print-file-name=crti.o
gcc -m64 -print-file-name=crtn.o

On my system, the outputs are:
> gcc -m32 -print-file-name=crti.o
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib/crti.o
> gcc -m32 -print-file-name=crtn.o
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib/crtn.o
> gcc -m64 -print-file-name=crti.o
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64/crti.o
> gcc -m64 -print-file-name=crtn.o
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64/crtn.o

You may check these outputs and make sure the files exist and are used
correctly.



2014-08-25 15:06 GMT+08:00 Nancy <nancydream...@gmail.com>:

> The patch still not working for me. Still the same error. Though the
> value of MULTILIB_OSDIRNAMES changes, but still no path in front of
> crti.o, crtn.o :(
>
> > By the way, x32 is a different ABI (http://en.wikipedia.org/wiki/X32_ABI
> ).
> Thanks for this information :)
>
> On Mon, Aug 25, 2014 at 12:08 PM, David Coakley <dcoak...@gmail.com>
> wrote:
> > Here is a revised patch that I think will work for you:
> >
> > 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 -a -f /usr/lib32/crti.o ] ; then echo  "../lib64
> ../lib32"
> > ; else echo "../lib/x86_64-linux-gnu ../lib/i386-linux-gnu" ; fi)
> >
> >  LIBGCC = stmp-multilib
> >  INSTALL_LIBGCC = install-multilib
> >
> >
> > By the way, x32 is a different ABI (http://en.wikipedia.org/wiki/X32_ABI
> ).
> >
> > -David
> >
> >
> > On Sat, Aug 23, 2014 at 11:55 PM, Nancy <nancydream...@gmail.com> wrote:
> >>
> >> On Sun, Aug 24, 2014 at 1:28 PM, David Coakley <dcoak...@gmail.com>
> wrote:
> >> >
> >> > Does /usr/lib32/crti.o exist on your system?  If not, try installing
> the
> >> > 'gcc-multilib' package.
> >>
> >> No, there's no /usr/lib32 folder exist but both /usr/libx32/crti.o
> >> /usr/lib64/crti.o do exist. And I have 'gcc-multilib' installed already.
> >>
> >>
> >> > Here are all the packages I installed on a desktop 64-bit Ubuntu 14.04
> >> > system:
> >> >
> >> > build-essential
> >> > subversion
> >> > flex
> >> > bison
> >> > g++
> >> > gfortran
> >> > gcc-multilib
> >> > gfortran-multilib
> >>
> >> I installed the missing gfortran & gfortran-multilib.
> >>
> >> Replace 'lib32' to 'libx32':
> >> 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 ../libx32" ; else echo
> >> "../lib/x86_64-linux-gnu ../libx32" ; fi)
> >>
> >> or not replace it, still the same error. This software enviroment has no
> >> problem building gcc 4.8.2 or LLVM with debug mode opened from
> sourcecode.
> >>
> >>
> >> --
> >> Best Regards,
> >> Yu Rong Tan
> >
> >
>
>
>
> --
> Best Regards,
> Yu Rong Tan
>



-- 
Regards,
Lai Jian-Xin
------------------------------------------------------------------------------
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