On Fri, 30 Jan 2026, Jakub Jelinek wrote:

> Hi!
> 
> Filip complained on IRC that libatomic_asneeded.a is installed as
> stale symlink in --disable-static build.
> 
> The following patch makes sure to install the libatomic_asneeded.{so,a}
> script and/or symlink only if the corresponding libatomic.{so,a} has been
> installed.
> 
> Bootstrapped/regtested on x86_64-linux and i686-linux, tested also
> with make install and verified libatomic_asneeded.{so,a} in both
> gcc/ subdir and in installed usr/local/lib{,64}/.  Ok for trunk?

OK.

Thanks,
Richard.

> 2026-01-30  Jakub Jelinek  <[email protected]>
> 
>       * Makefile.am (all-local, install-asneeded): Only create
>       libatomic_asneeded.so script if libatomic.so exist, only
>       create libatomic_asneeded.a symlink if libatomic.a exist.
>       * Makefile.in: Regenerate.
> 
> --- libatomic/Makefile.am.jj  2026-01-19 09:46:11.328878897 +0100
> +++ libatomic/Makefile.am     2026-01-29 21:14:47.687107674 +0100
> @@ -185,12 +185,12 @@ all-local: libatomic.la
>       $(LIBTOOL) --mode=install $(INSTALL_DATA) libatomic.la 
> $(gcc_objdir)$(MULTISUBDIR)/
>  if LIBAT_BUILD_ASNEEDED_SOLINK
>       cd $(gcc_objdir)$(MULTISUBDIR) || exit 1; \
> -     (echo "/* GNU ld script"; \
> +     if test -f libatomic.so; then (echo "/* GNU ld script"; \
>        echo "   Add DT_NEEDED entry for -latomic only if needed.  */"; \
>        echo "INPUT ( AS_NEEDED ( -latomic ) )" \
> -     ) > libatomic_asneeded.so; \
> -     rm -f libatomic_asneeded.a; \
> -     $(LN_S) libatomic.a libatomic_asneeded.a
> +     ) > libatomic_asneeded.so; fi; \
> +     if test -f libatomic.a; then rm -f libatomic_asneeded.a; \
> +     $(LN_S) libatomic.a libatomic_asneeded.a; fi
>  endif
>       rm $(gcc_objdir)$(MULTISUBDIR)/libatomic.la
>  
> @@ -200,12 +200,12 @@ install-data-am: install-asneeded
>  install-asneeded: install-toolexeclibLTLIBRARIES
>       $(MKDIR_P) "$(DESTDIR)$(toolexeclibdir)" || exit 1; \
>       cd "$(DESTDIR)$(toolexeclibdir)" || exit 1; \
> -     (echo "/* GNU ld script"; \
> +     if test -f libatomic.so; then (echo "/* GNU ld script"; \
>        echo "   Add DT_NEEDED entry for -latomic only if needed.  */"; \
>        echo "INPUT ( AS_NEEDED ( -latomic ) )" \
> -     ) > libatomic_asneeded.so; \
> -     rm -f libatomic_asneeded.a; \
> -     $(LN_S) libatomic.a libatomic_asneeded.a
> +     ) > libatomic_asneeded.so; fi; \
> +     if test -f libatomic.a; then rm -f libatomic_asneeded.a; \
> +     $(LN_S) libatomic.a libatomic_asneeded.a; fi
>  endif
>  
>  # target overrides
> --- libatomic/Makefile.in.jj  2026-01-19 09:46:11.328878897 +0100
> +++ libatomic/Makefile.in     2026-01-29 21:15:08.145605754 +0100
> @@ -932,12 +932,12 @@ all-multi: $(libatomic_la_LIBADD)
>  all-local: libatomic.la
>       $(LIBTOOL) --mode=install $(INSTALL_DATA) libatomic.la 
> $(gcc_objdir)$(MULTISUBDIR)/
>  @LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@   cd $(gcc_objdir)$(MULTISUBDIR) || exit 
> 1; \
> -@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@   (echo "/* GNU ld script"; \
> +@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@   if test -f libatomic.so; then (echo "/* 
> GNU ld script"; \
>  @LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@    echo "   Add DT_NEEDED entry for 
> -latomic only if needed.  */"; \
>  @LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@    echo "INPUT ( AS_NEEDED ( -latomic ) 
> )" \
> -@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@   ) > libatomic_asneeded.so; \
> -@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@   rm -f libatomic_asneeded.a; \
> -@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@   $(LN_S) libatomic.a libatomic_asneeded.a
> +@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@   ) > libatomic_asneeded.so; fi; \
> +@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@   if test -f libatomic.a; then rm -f 
> libatomic_asneeded.a; \
> +@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@   $(LN_S) libatomic.a 
> libatomic_asneeded.a; fi
>       rm $(gcc_objdir)$(MULTISUBDIR)/libatomic.la
>  
>  @LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@install-data-am: install-asneeded
> @@ -945,12 +945,12 @@ all-local: libatomic.la
>  @LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@install-asneeded: 
> install-toolexeclibLTLIBRARIES
>  @LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@   $(MKDIR_P) 
> "$(DESTDIR)$(toolexeclibdir)" || exit 1; \
>  @LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@   cd "$(DESTDIR)$(toolexeclibdir)" || 
> exit 1; \
> -@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@   (echo "/* GNU ld script"; \
> +@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@   if test -f libatomic.so; then (echo "/* 
> GNU ld script"; \
>  @LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@    echo "   Add DT_NEEDED entry for 
> -latomic only if needed.  */"; \
>  @LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@    echo "INPUT ( AS_NEEDED ( -latomic ) 
> )" \
> -@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@   ) > libatomic_asneeded.so; \
> -@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@   rm -f libatomic_asneeded.a; \
> -@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@   $(LN_S) libatomic.a libatomic_asneeded.a
> +@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@   ) > libatomic_asneeded.so; fi; \
> +@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@   if test -f libatomic.a; then rm -f 
> libatomic_asneeded.a; \
> +@LIBAT_BUILD_ASNEEDED_SOLINK_TRUE@   $(LN_S) libatomic.a 
> libatomic_asneeded.a; fi
>  
>  # target overrides
>  -include $(tmake_file)
> 
>       Jakub
> 
> 

-- 
Richard Biener <[email protected]>
SUSE Software Solutions Germany GmbH,
Frankenstrasse 146, 90461 Nuernberg, Germany;
GF: Jochen Jaser, Andrew McDonald, Werner Knoblich; (HRB 36809, AG Nuernberg)

Reply via email to