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


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?

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