This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Problem installing libgcc_s.so on x86_64 with gcc head


Andreas Jaeger <aj@suse.de> writes:

> Nathanael,
>
> your patch introduced the problem mentioned below in
> config/t-slibgcc-elf-ver.  Can you approve the patch or propose a
> better solution, please?

Note I just tested the patch and it solves the problem below indeed.
I consider applying it tomorrow as obvious...

Andreas

> Andreas
>
> Nicolas Roche <roche@act-europe.fr> writes:
>
>> I am trying to build gcc 3.5 on x86_64 linux and during the install of
>> the libgcc (shared) i have the following problem:
>>
>> /don.a/gnatmail-x/build-don/../build-don/gnat-5.03h-x86_64-pc-linux-gnu-bin/lib/../lib64; /usr/bin/install -c -m 644 libgcc_s.so.1 /don.a/gnatmail-x/build-don/.
>> ./build-don/gnat-5.03h-x86_64-pc-linux-gnu-bin/lib/../lib64/libgcc_s.so.1; rm -f /don.a/gnatmail-x/build-don/../build-don/gnat-5.03h-x86_64-pc-linux-gnu-bin/lib
>> /../lib64/libgcc_s.so; ln -s libgcc_s.so.1 /don.a/gnatmail-x/build-don/../build-don/gnat-5.03h-x86_64-pc-linux-gnu-bin/lib/../lib64/libgcc_s.so
>> /bin/sh: line 1: /don.a/gnatmail-x/build-don/../build-don/gnat-5.03h-x86_64-pc-linux-gnu-bin/lib/../lib64: No such file or directory
>> /usr/bin/install: cannot create regular file `/don.a/gnatmail-x/build-don/../build-don/gnat-5.03h-x86_64-pc-linux-gnu-bin/lib/../lib64/libgcc_s.so.1': No such f
>> ile or directory
>> ln: creating symbolic link `/don.a/gnatmail-x/build-don/../build-don/gnat-5.03h-x86_64-pc-linux-gnu-bin/lib/../lib64/libgcc_s.so' to `libgcc_s.so.1': No such fi
>> le or directory
>> make[2]: *** [install] Error 1
>> make[2]: Leaving directory `/don.a/gnatmail-x/build-don/obj/gcc'
>> make[1]: *** [install-multilib] Error 2
>> make[1]: Leaving directory `/don.a/gnatmail-x/build-don/obj/gcc'
>> make: *** [install-gcc] Error 2
>>
>> it seems that the problem comes from the followiong patch:
>> diff -c -r1.5 -r1.6
>> *** t-slibgcc-elf-ver   9 Jan 2003 08:00:39 -0000       1.5
>> --- t-slibgcc-elf-ver   7 Feb 2004 23:45:22 -0000       1.6
>> ***************
>> *** 19,25 ****
>>   # $(slibdir) double quoted to protect it from expansion while building
>>   # libgcc.mk.  We want this delayed until actual install time.
>>   SHLIB_INSTALL = \
>> !       $$(SHELL) $$(srcdir)/mkinstalldirs $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL); \
>>         $(INSTALL_DATA) $(SHLIB_NAME) \
>>           $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
>>         rm -f $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \
>> --- 19,25 ----
>>   # $(slibdir) double quoted to protect it from expansion while building
>>   # libgcc.mk.  We want this delayed until actual install time.
>>   SHLIB_INSTALL = \
>> !       $$(mkinstalldirs) $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL); \
>>         $(INSTALL_DATA) $(SHLIB_NAME) \
>>           $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
>>         rm -f $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \
>>
>> The direct reference to mkinstalldirs has been replaced by a var. So
>> in libgcc.mk we have
>>  $(mkinstalldirs) $(DESTDIR)$(slibdir)/../lib
>>
>> But this var is not passed when calling make -f libgcc.mk install. So that's why lib64
>> subdir is not created (see the first line of my build log). The problem can appear on
>> other platforms if the subdir for the slibgcc is not created before and depending on the
>> value of SHLIB_INSTALL
>>
>> So I would like to submit the following patch:
>> <<
>> Index: Makefile.in
>> ===================================================================
>> RCS file: /cvs/gcc/gcc/gcc/Makefile.in,v
>> retrieving revision 1.1253
>> diff -c -3 -p -r1.1253 Makefile.in
>> *** Makefile.in 20 Feb 2004 04:19:31 -0000      1.1253
>> --- Makefile.in 23 Feb 2004 14:18:51 -0000
>> *************** install-libgcc: libgcc.mk libgcc.a libgc
>> *** 3010,3015 ****
>> --- 3010,3016 ----
>>           CFLAGS="$(CFLAGS) $(WARN_CFLAGS)" \
>>           CONFIG_H="$(TCONFIG_H)" \
>>           MAKEOVERRIDES= \
>> +         mkinstalldirs='$(mkinstalldirs)' \
>>           -f libgcc.mk install
>>   
>>   # Install multiple versions of libgcc.a, libgcov.a.
>> *************** install-multilib: stmp-multilib installd
>> *** 3018,3023 ****
>> --- 3019,3025 ----
>>           CFLAGS="$(CFLAGS) $(WARN_CFLAGS)" \
>>           CONFIG_H="$(CONFIG_H)" \
>>           MAKEOVERRIDES= \
>> +         mkinstalldirs='$(mkinstalldirs)' \
>>           -f libgcc.mk install
>>   
>>   # Install all the header files built in the include subdirectory.
>>>>
>>
>> I hope it is the right way to fix this...
>>
>> the ChangeLog entry is:
>>
>> 2004-02-23 Roche Nicolas <roche@act-europe.fr>
>>         * Makefile.in (install-libgcc, install-multilib):
>>         Pass mkinstalldirs var to libgcc.mk
>
> Andreas

Andreas
-- 
 Andreas Jaeger, aj@suse.de, http://www.suse.de/~aj
  SuSE Linux AG, Maxfeldstr. 5, 90409 Nürnberg, Germany
   GPG fingerprint = 93A3 365E CE47 B889 DF7F  FED1 389A 563C C272 A126

Attachment: pgp00000.pgp
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]