nancy@nancy-ThinkPad-T61:~$ gcc -m32 -print-file-name=crti.o
/usr/lib/gcc/i686-linux-gnu/4.8/../../../i386-linux-gnu/crti.o
nancy@nancy-ThinkPad-T61:~$ gcc -m32 -print-file-name=crtn.o
/usr/lib/gcc/i686-linux-gnu/4.8/../../../i386-linux-gnu/crtn.o
nancy@nancy-ThinkPad-T61:~$ gcc -m64 -print-file-name=crti.o
/usr/lib/gcc/i686-linux-gnu/4.8/../../../../lib64/crti.o
nancy@nancy-ThinkPad-T61:~$ gcc -m64 -print-file-name=crtn.o
/usr/lib/gcc/i686-linux-gnu/4.8/../../../../lib64/crtn.o

I think the file exist and uses correctly or the crtendS.o, crtendBeginS.o
... could not rebuilt successfully.

nancy@nancy-ThinkPad-T61
:~/work/build-open64-svn/osprey-gcc-4.2.0/host-unknown/gcc$
*/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 -O2 -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

I don't known where you give the newly built "xgcc"'s parameters( in
Makefile or somewhere ), that place miss the path in front of crti.o crtn.o.


On Mon, Aug 25, 2014 at 3:13 PM, Jian-Xin Lai <laij...@gmail.com> wrote:

> 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
>



-- 
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