Re-enable nvptx-offload

Related: RHEL-81741
This commit is contained in:
Marek Polacek 2025-06-04 17:22:10 -04:00
parent 7a8476ea67
commit cf52435176
2 changed files with 444 additions and 12 deletions

View File

@ -1,7 +1,16 @@
%if 0%{?rhel} < 10
%global have_scl_utils 1
%else
%global have_scl_utils 0
%endif
%global gts_ver 15 %global gts_ver 15
%{?scl_package:%global scl gcc-toolset-%{gts_ver}} %{?scl_package:%global scl gcc-toolset-%{gts_ver}}
%global scl_prefix gcc-toolset-%{gts_ver}- %global scl_prefix gcc-toolset-%{gts_ver}-
%if %have_scl_utils
BuildRequires: scl-utils-build BuildRequires: scl-utils-build
%else
BuildRequires: gcc-toolset-%{gts_ver}-devel
%endif
%global __python /usr/bin/python3 %global __python /usr/bin/python3
%{?scl:%global __strip %%{_scl_root}/usr/bin/strip} %{?scl:%global __strip %%{_scl_root}/usr/bin/strip}
%{?scl:%global __objdump %%{_scl_root}/usr/bin/objdump} %{?scl:%global __objdump %%{_scl_root}/usr/bin/objdump}
@ -131,8 +140,7 @@ BuildRequires: scl-utils-build
%global attr_ifunc 0 %global attr_ifunc 0
%endif %endif
%ifarch x86_64 ppc64le %ifarch x86_64 ppc64le
# FIXME fails with nvptx-as: missing .version directive at start of file %global build_offload_nvptx 1
%global build_offload_nvptx 0
%else %else
%global build_offload_nvptx 0 %global build_offload_nvptx 0
%endif %endif
@ -155,7 +163,7 @@ BuildRequires: scl-utils-build
%ifarch x86_64 %ifarch x86_64
%global multilib_32_arch i686 %global multilib_32_arch i686
%endif %endif
%if 0%{?fedora} >= 36 || 0%{?rhel} > 8 %if 0%{?fedora} >= 36 || 0%{?rhel} >= 8
%global build_annobin_plugin 1 %global build_annobin_plugin 1
%else %else
%global build_annobin_plugin 0 %global build_annobin_plugin 0
@ -163,7 +171,7 @@ BuildRequires: scl-utils-build
Summary: GCC version %{gcc_major} Summary: GCC version %{gcc_major}
Name: %{?scl_prefix}gcc Name: %{?scl_prefix}gcc
Version: %{gcc_version} Version: %{gcc_version}
Release: %{gcc_release}%{?dist} Release: %{gcc_release}.1%{?dist}
# License notes for some of the less obvious ones: # License notes for some of the less obvious ones:
# gcc/doc/cppinternals.texi: Linux-man-pages-copyleft-2-para # gcc/doc/cppinternals.texi: Linux-man-pages-copyleft-2-para
# isl: MIT, BSD-2-Clause # isl: MIT, BSD-2-Clause
@ -244,7 +252,11 @@ BuildRequires: glibc >= 2.3.90-35
%endif %endif
%ifarch %{multilib_64_archs} %ifarch %{multilib_64_archs}
# Ensure glibc{,-devel} is installed for both multilib arches # Ensure glibc{,-devel} is installed for both multilib arches
%if 0%{?rhel} < 10
BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so
%else
BuildRequires: /usr/lib/libc.so /usr/lib64/libc.so
%endif
%endif %endif
%ifarch ia64 %ifarch ia64
BuildRequires: libunwind >= 0.98 BuildRequires: libunwind >= 0.98
@ -288,7 +300,9 @@ Requires: libgcc >= 4.1.2-43
Requires: libgomp >= 4.4.4-13 Requires: libgomp >= 4.4.4-13
# lto-wrapper invokes make # lto-wrapper invokes make
Requires: make Requires: make
%if %have_scl_utils
%{?scl:Requires:%scl_runtime} %{?scl:Requires:%scl_runtime}
%endif
AutoReq: true AutoReq: true
# Various libraries are imported. #1859893 asks us to list them all. # Various libraries are imported. #1859893 asks us to list them all.
Provides: bundled(libiberty) Provides: bundled(libiberty)
@ -353,7 +367,7 @@ Patch100: gcc15-fortran-fdec-duplicates.patch
Patch1000: gcc15-libstdc++-compat.patch Patch1000: gcc15-libstdc++-compat.patch
Patch1001: gcc15-libgfortran-compat.patch Patch1001: gcc15-libgfortran-compat.patch
Patch1002: gcc15-nvptx-offload.patch
Patch3000: 0001-basic_string-reserve-n-semantics-are-not-available-i.patch Patch3000: 0001-basic_string-reserve-n-semantics-are-not-available-i.patch
Patch3001: 0004-operator-istream-char-N-eofbit-fixes-are-not-availab.patch Patch3001: 0004-operator-istream-char-N-eofbit-fixes-are-not-availab.patch
@ -373,6 +387,9 @@ Patch3015: 0018-Use-CXX11-ABI.patch
Patch3017: 0020-more-fixes.patch Patch3017: 0020-more-fixes.patch
Patch3018: 0021-libstdc++-disable-tests.patch Patch3018: 0021-libstdc++-disable-tests.patch
%if 0%{?rhel} == 10
%global nonsharedver 140
%endif
%if 0%{?rhel} == 9 %if 0%{?rhel} == 9
%global nonsharedver 110 %global nonsharedver 110
%endif %endif
@ -710,6 +727,7 @@ rm -f gcc/testsuite/g++.dg/tsan/pthread_cond_clockwait.C
%patch -P1000 -p0 -b .libstdc++-compat~ %patch -P1000 -p0 -b .libstdc++-compat~
%patch -P1001 -p0 -b .libgfortran-compat~ %patch -P1001 -p0 -b .libgfortran-compat~
%patch -P1002 -p0 -b .nvptx-compat~
%if %{build_isl} %if %{build_isl}
%patch -P50 -p0 -b .isl-rh2155127~ %patch -P50 -p0 -b .isl-rh2155127~
@ -797,6 +815,13 @@ sed -i '/^GENERATE_TREEVIEW/s/YES/NO/' libstdc++-v3/doc/doxygen/user.cfg.in
# Undo the broken autoconf change in recent Fedora versions # Undo the broken autoconf change in recent Fedora versions
export CONFIG_SITE=NONE export CONFIG_SITE=NONE
%if 0%{?rhel} == 10
# Work around https://issues.redhat.com/browse/RHEL-49348
%ifarch ppc64le
export GLIBC_TUNABLES=glibc.cpu.hwcaps=-arch_3_1
%endif
%endif
CC=gcc CC=gcc
CXX=g++ CXX=g++
OPT_FLAGS="%{optflags}" OPT_FLAGS="%{optflags}"
@ -896,6 +921,13 @@ cd ../..
%{?scl:PATH=%{_bindir}${PATH:+:${PATH}}} %{?scl:PATH=%{_bindir}${PATH:+:${PATH}}}
%endif %endif
offloadtgts=
%if %{build_offload_nvptx}
offloadtgts=nvptx-none
%endif
%if %{build_offload_amdgcn}
offloadtgts=${offloadtgts:+${offloadtgts},}amdgcn-amdhsa
%endif
# We're going to use the old long double format (double double) until RHEL10. # We're going to use the old long double format (double double) until RHEL10.
# Only -static-lib{stdc++,gfortran}/libgcc would work with IEEE double. # Only -static-lib{stdc++,gfortran}/libgcc would work with IEEE double.
# Upstream also uses the old long double format, but Fedora uses the new # Upstream also uses the old long double format, but Fedora uses the new
@ -2677,8 +2709,11 @@ fi
%endif %endif
%if %{build_libasan} %if %{build_libasan}
# RHEL 10 system gcc has libasan.so.8.
%if 0%{?rhel} < 10
%files -n libasan8 %files -n libasan8
%{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libasan.so.8* %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libasan.so.8*
%endif
%files -n %{?scl_prefix}libasan-devel %files -n %{?scl_prefix}libasan-devel
%dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc
@ -2723,8 +2758,11 @@ fi
%endif %endif
%if %{build_libtsan} %if %{build_libtsan}
# RHEL 10 system gcc has libtsan.so.2.
%if 0%{?rhel} < 10
%files -n libtsan2 %files -n libtsan2
%{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libtsan.so.2* %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libtsan.so.2*
%endif
%files -n %{?scl_prefix}libtsan-devel %files -n %{?scl_prefix}libtsan-devel
%dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc
@ -2739,8 +2777,11 @@ fi
%endif %endif
%if %{build_libhwasan} %if %{build_libhwasan}
# RHEL 10 system gcc has libhwasan.so.0.
%if 0%{?rhel} < 10
%files -n libhwasan %files -n libhwasan
%{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libhwasan.so.0* %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libhwasan.so.0*
%endif
%files -n %{?scl_prefix}libhwasan-devel %files -n %{?scl_prefix}libhwasan-devel
%dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc
@ -2755,14 +2796,9 @@ fi
%endif %endif
%if %{build_liblsan} %if %{build_liblsan}
# Use the system liblsan. # Use the system liblsan, except for s390x on RHEL 8+9.
%if 0%{?rhel} < 8 %if 0%{?rhel} < 10
%files -n liblsan
%{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/liblsan.so.0*
%else
%ifarch s390x %ifarch s390x
# Except that on s390x we don't have the system liblsan, because we
# only enabled LSan in GCC 12. ??? Ugly duplication.
%files -n liblsan %files -n liblsan
%{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/liblsan.so.0* %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/liblsan.so.0*
%endif %endif
@ -2845,6 +2881,9 @@ fi
%endif %endif
%changelog %changelog
* Wed Jun 4 2025 Marek Polacek <polacek@redhat.com> 15.1.1-2.1
- re-enable annobin-plugin and offload-nvptx
* Wed May 21 2025 Marek Polacek <polacek@redhat.com> 15.1.1-2 * Wed May 21 2025 Marek Polacek <polacek@redhat.com> 15.1.1-2
- update from releases/gcc-15 branch - update from releases/gcc-15 branch
- PRs ada/112958, ada/120104, c/120057, c++/119863, c++/119864, c++/119938, - PRs ada/112958, ada/120104, c/120057, c++/119863, c++/119864, c++/119938,

393
gcc15-nvptx-offload.patch Normal file
View File

@ -0,0 +1,393 @@
--- libstdc++-v3/configure.ac.jj 2025-06-04 19:13:51.905392301 +0200
+++ libstdc++-v3/configure.ac 2025-06-04 19:14:04.088236951 +0200
@@ -710,6 +710,13 @@ CCAS='$(CXX)'
CCASFLAGS='$(CXXFLAGS)'
AC_SUBST(CCAS)
AC_SUBST(CCASFLAGS)
+case "$host" in
+ *amdgcn*|*ptx*)
+ build_nonshared=no;;
+ *)
+ build_nonshared=yes;;
+esac
+AM_CONDITIONAL([BUILD_NONSHARED], [test x${build_nonshared} = xyes])
dnl In autoconf 2.5x, AC_OUTPUT is replaced by four AC_CONFIG_* macros,
dnl which can all be called multiple times as needed, plus one (different)
--- libstdc++-v3/configure.jj 2025-06-04 19:13:51.911392225 +0200
+++ libstdc++-v3/configure 2025-06-04 19:14:48.940665026 +0200
@@ -633,6 +633,8 @@ ac_subst_vars='am__EXEEXT_FALSE
am__EXEEXT_TRUE
LTLIBOBJS
LIBOBJS
+BUILD_NONSHARED_FALSE
+BUILD_NONSHARED_TRUE
CCASFLAGS
CCAS
get_gcc_base_ver
@@ -12282,7 +12284,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12285 "configure"
+#line 12287 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12388,7 +12390,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12391 "configure"
+#line 12393 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -16184,7 +16186,7 @@ $as_echo "$glibcxx_cv_atomic_long_long"
# Fake what AC_TRY_COMPILE does.
cat > conftest.$ac_ext << EOF
-#line 16187 "configure"
+#line 16189 "configure"
int main()
{
typedef bool atomic_type;
@@ -16219,7 +16221,7 @@ $as_echo "$glibcxx_cv_atomic_bool" >&6;
rm -f conftest*
cat > conftest.$ac_ext << EOF
-#line 16222 "configure"
+#line 16224 "configure"
int main()
{
typedef short atomic_type;
@@ -16254,7 +16256,7 @@ $as_echo "$glibcxx_cv_atomic_short" >&6;
rm -f conftest*
cat > conftest.$ac_ext << EOF
-#line 16257 "configure"
+#line 16259 "configure"
int main()
{
// NB: _Atomic_word not necessarily int.
@@ -16290,7 +16292,7 @@ $as_echo "$glibcxx_cv_atomic_int" >&6; }
rm -f conftest*
cat > conftest.$ac_ext << EOF
-#line 16293 "configure"
+#line 16295 "configure"
int main()
{
typedef long long atomic_type;
@@ -16447,7 +16449,7 @@ $as_echo "mutex" >&6; }
# unnecessary for this test.
cat > conftest.$ac_ext << EOF
-#line 16450 "configure"
+#line 16452 "configure"
int main()
{
_Decimal32 d1;
@@ -16489,7 +16491,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
# unnecessary for this test.
cat > conftest.$ac_ext << EOF
-#line 16492 "configure"
+#line 16494 "configure"
template<typename T1, typename T2>
struct same
{ typedef T2 type; };
@@ -55807,6 +55809,20 @@ CCAS='$(CXX)'
CCASFLAGS='$(CXXFLAGS)'
+case "$host" in
+ *amdgcn*|*ptx*)
+ build_nonshared=no;;
+ *)
+ build_nonshared=yes;;
+esac
+ if test x${build_nonshared} = xyes; then
+ BUILD_NONSHARED_TRUE=
+ BUILD_NONSHARED_FALSE='#'
+else
+ BUILD_NONSHARED_TRUE='#'
+ BUILD_NONSHARED_FALSE=
+fi
+
ac_config_files="$ac_config_files Makefile"
@@ -56106,6 +56122,10 @@ if test -z "${INCLUDE_DIR_NOTPARALLEL_TR
as_fn_error $? "conditional \"INCLUDE_DIR_NOTPARALLEL\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${BUILD_NONSHARED_TRUE}" && test -z "${BUILD_NONSHARED_FALSE}"; then
+ as_fn_error $? "conditional \"BUILD_NONSHARED\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
: "${CONFIG_STATUS=./config.status}"
ac_write_fail=0
--- libstdc++-v3/src/Makefile.am.jj 2025-06-04 19:13:51.888392518 +0200
+++ libstdc++-v3/src/Makefile.am 2025-06-04 19:14:39.270788328 +0200
@@ -42,10 +42,18 @@ backtrace_dir =
experimental_dir =
endif
+if BUILD_NONSHARED
+nonshared_subdirs = nonshared98 nonshared11 nonshared17 nonshared20 nonshared23 nonshared26
+nonshared_libs = libstdc++_nonshared80.la libstdc++_nonshared110.la libstdc++_nonshared140.la
+else
+nonshared_subdirs =
+nonshared_libs =
+endif
+
## Keep this list sync'd with acinclude.m4:GLIBCXX_CONFIGURE.
SUBDIRS = c++98 c++11 c++17 c++20 c++23 c++26 \
$(filesystem_dir) $(backtrace_dir) $(experimental_dir) \
- nonshared98 nonshared11 nonshared17 nonshared20 nonshared23 nonshared26
+ $(nonshared_subdirs)
# Cross compiler support.
if VTV_CYGMIN
@@ -54,9 +62,7 @@ else
toolexeclib_LTLIBRARIES = libstdc++.la
endif
-noinst_LTLIBRARIES = libstdc++_nonshared80.la \
- libstdc++_nonshared110.la \
- libstdc++_nonshared140.la
+noinst_LTLIBRARIES = $(nonshared_libs)
if VTV_CYGMIN
vtv_stubs.cc:
--- libstdc++-v3/src/Makefile.in.jj 2025-06-04 19:14:04.096236849 +0200
+++ libstdc++-v3/src/Makefile.in 2025-06-04 19:14:53.060612491 +0200
@@ -174,12 +174,15 @@ AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__v_lt_1 =
+@BUILD_NONSHARED_TRUE@am_libstdc___nonshared110_la_rpath =
am_libstdc___nonshared140_la_OBJECTS =
libstdc___nonshared140_la_OBJECTS = \
$(am_libstdc___nonshared140_la_OBJECTS)
+@BUILD_NONSHARED_TRUE@am_libstdc___nonshared140_la_rpath =
am_libstdc___nonshared80_la_OBJECTS =
libstdc___nonshared80_la_OBJECTS = \
$(am_libstdc___nonshared80_la_OBJECTS)
+@BUILD_NONSHARED_TRUE@am_libstdc___nonshared80_la_rpath =
libvtv_la_LIBADD =
@VTV_CYGMIN_TRUE@am_libvtv_la_OBJECTS = vtv_stubs.lo
libvtv_la_OBJECTS = $(am_libvtv_la_OBJECTS)
@@ -523,18 +526,19 @@ AM_CPPFLAGS = $(GLIBCXX_INCLUDES) $(CPPF
@GLIBCXX_HOSTED_FALSE@backtrace_dir =
@GLIBCXX_HOSTED_FALSE@experimental_dir =
@GLIBCXX_HOSTED_TRUE@experimental_dir = experimental
+@BUILD_NONSHARED_FALSE@nonshared_subdirs =
+@BUILD_NONSHARED_TRUE@nonshared_subdirs = nonshared98 nonshared11 nonshared17 nonshared20 nonshared23 nonshared26
+@BUILD_NONSHARED_FALSE@nonshared_libs =
+@BUILD_NONSHARED_TRUE@nonshared_libs = libstdc++_nonshared80.la libstdc++_nonshared110.la libstdc++_nonshared140.la
SUBDIRS = c++98 c++11 c++17 c++20 c++23 c++26 \
$(filesystem_dir) $(backtrace_dir) $(experimental_dir) \
- nonshared98 nonshared11 nonshared17 nonshared20 nonshared23 nonshared26
+ $(nonshared_subdirs)
@VTV_CYGMIN_FALSE@toolexeclib_LTLIBRARIES = libstdc++.la
# Cross compiler support.
@VTV_CYGMIN_TRUE@toolexeclib_LTLIBRARIES = libvtv.la libstdc++.la
-noinst_LTLIBRARIES = libstdc++_nonshared80.la \
- libstdc++_nonshared110.la \
- libstdc++_nonshared140.la
-
+noinst_LTLIBRARIES = $(nonshared_libs)
@VTV_CYGMIN_TRUE@libvtv_la_SOURCES = vtv_stubs.cc
@VTV_CYGMIN_TRUE@libvtv_la_LDFLAGS = $(lt_host_flags)
@VTV_CYGMIN_TRUE@libvtv_la_AM_CXXFLAGS = \
@@ -851,13 +855,13 @@ libstdc++.la: $(libstdc___la_OBJECTS) $(
$(AM_V_GEN)$(libstdc___la_LINK) $(am_libstdc___la_rpath) $(libstdc___la_OBJECTS) $(libstdc___la_LIBADD) $(LIBS)
libstdc++_nonshared110.la: $(libstdc___nonshared110_la_OBJECTS) $(libstdc___nonshared110_la_DEPENDENCIES) $(EXTRA_libstdc___nonshared110_la_DEPENDENCIES)
- $(AM_V_CCLD)$(LINK) $(libstdc___nonshared110_la_OBJECTS) $(libstdc___nonshared110_la_LIBADD) $(LIBS)
+ $(AM_V_CCLD)$(LINK) $(am_libstdc___nonshared110_la_rpath) $(libstdc___nonshared110_la_OBJECTS) $(libstdc___nonshared110_la_LIBADD) $(LIBS)
libstdc++_nonshared140.la: $(libstdc___nonshared140_la_OBJECTS) $(libstdc___nonshared140_la_DEPENDENCIES) $(EXTRA_libstdc___nonshared140_la_DEPENDENCIES)
- $(AM_V_CCLD)$(LINK) $(libstdc___nonshared140_la_OBJECTS) $(libstdc___nonshared140_la_LIBADD) $(LIBS)
+ $(AM_V_CCLD)$(LINK) $(am_libstdc___nonshared140_la_rpath) $(libstdc___nonshared140_la_OBJECTS) $(libstdc___nonshared140_la_LIBADD) $(LIBS)
libstdc++_nonshared80.la: $(libstdc___nonshared80_la_OBJECTS) $(libstdc___nonshared80_la_DEPENDENCIES) $(EXTRA_libstdc___nonshared80_la_DEPENDENCIES)
- $(AM_V_CCLD)$(LINK) $(libstdc___nonshared80_la_OBJECTS) $(libstdc___nonshared80_la_LIBADD) $(LIBS)
+ $(AM_V_CCLD)$(LINK) $(am_libstdc___nonshared80_la_rpath) $(libstdc___nonshared80_la_OBJECTS) $(libstdc___nonshared80_la_LIBADD) $(LIBS)
libvtv.la: $(libvtv_la_OBJECTS) $(libvtv_la_DEPENDENCIES) $(EXTRA_libvtv_la_DEPENDENCIES)
$(AM_V_GEN)$(libvtv_la_LINK) $(am_libvtv_la_rpath) $(libvtv_la_OBJECTS) $(libvtv_la_LIBADD) $(LIBS)
--- libgfortran/configure.ac.orig 2025-06-04 15:39:38.229810679 -0400
+++ libgfortran/configure.ac 2025-06-04 15:38:52.859340347 -0400
@@ -752,6 +752,14 @@ if test "$libgfor_cv_posix_getpwuid_r" =
fi
+case "$host" in
+ *amdgcn*|*ptx*)
+ build_nonshared=no;;
+ *)
+ build_nonshared=yes;;
+esac
+AM_CONDITIONAL([BUILD_NONSHARED], [test x${build_nonshared} = xyes])
+
# Check out attribute support.
LIBGFOR_CHECK_ATTRIBUTE_VISIBILITY
LIBGFOR_CHECK_ATTRIBUTE_ALIAS
--- libgfortran/configure.orig 2025-06-04 15:39:21.171243811 -0400
+++ libgfortran/configure 2025-06-04 15:39:54.426500140 -0400
@@ -639,6 +639,8 @@ LIBOBJS
get_gcc_base_ver
HAVE_AVX128_FALSE
HAVE_AVX128_TRUE
+BUILD_NONSHARED_FALSE
+BUILD_NONSHARED_TRUE
tmake_file
IEEE_FLAGS
IEEE_SUPPORT
@@ -12847,7 +12849,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12850 "configure"
+#line 12852 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12953,7 +12955,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12956 "configure"
+#line 12958 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -30901,6 +30903,20 @@ $as_echo "#define HAVE_POSIX_GETPWUID_R
fi
+case "$host" in
+ *amdgcn*|*ptx*)
+ build_nonshared=no;;
+ *)
+ build_nonshared=yes;;
+esac
+ if test x${build_nonshared} = xyes; then
+ BUILD_NONSHARED_TRUE=
+ BUILD_NONSHARED_FALSE='#'
+else
+ BUILD_NONSHARED_TRUE='#'
+ BUILD_NONSHARED_FALSE=
+fi
+
# Check out attribute support.
@@ -31721,6 +31737,10 @@ if test -z "${IEEE_SUPPORT_TRUE}" && tes
as_fn_error $? "conditional \"IEEE_SUPPORT\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${BUILD_NONSHARED_TRUE}" && test -z "${BUILD_NONSHARED_FALSE}"; then
+ as_fn_error $? "conditional \"BUILD_NONSHARED\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${HAVE_AVX128_TRUE}" && test -z "${HAVE_AVX128_FALSE}"; then
as_fn_error $? "conditional \"HAVE_AVX128\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
--- libgfortran/Makefile.am.orig 2025-06-04 15:41:28.901589188 -0400
+++ libgfortran/Makefile.am 2025-06-04 15:45:52.920898503 -0400
@@ -42,6 +42,12 @@ extra_darwin_ldflags_libgfortran += -Wc,
extra_darwin_ldflags_libgfortran += -Wl,-rpath,@loader_path
endif
+if BUILD_NONSHARED
+nonshared_libs = libgfortran_nonshared80.la libgfortran_nonshared110.la libgfortran_nonshared140.la
+else
+nonshared_libs =
+endif
+
gfor_c_HEADERS = ISO_Fortran_binding.h
gfor_cdir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include
@@ -49,8 +55,7 @@ LTLDFLAGS = $(shell $(SHELL) $(top_srcdi
$(lt_host_flags)
toolexeclib_LTLIBRARIES = libgfortran.la
-noinst_LTLIBRARIES = libgfortran_nonshared80.la libgfortran_nonshared110.la \
- libgfortran_nonshared140.la
+noinst_LTLIBRARIES = $(nonshared_libs)
toolexeclib_DATA = libgfortran.spec
libgfortran_la_LINK = $(LINK) $(libgfortran_la_LDFLAGS)
libgfortran_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
--- libgfortran/Makefile.in.orig 2025-06-04 15:41:37.339898385 -0400
+++ libgfortran/Makefile.in 2025-06-04 15:46:25.513950233 -0400
@@ -781,11 +781,13 @@ AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__v_lt_1 =
+@BUILD_NONSHARED_TRUE@am_libgfortran_nonshared110_la_rpath =
libgfortran_nonshared140_la_LIBADD =
am_libgfortran_nonshared140_la_OBJECTS = $(am__objects_66) \
$(am__objects_67) nonshared-in_unpack_class.lo
libgfortran_nonshared140_la_OBJECTS = \
$(am_libgfortran_nonshared140_la_OBJECTS)
+@BUILD_NONSHARED_TRUE@am_libgfortran_nonshared140_la_rpath =
libgfortran_nonshared80_la_LIBADD =
am__objects_68 = nonshared-ISO_Fortran_binding.lo \
nonshared-in_unpack_class.lo
@@ -815,6 +817,7 @@ am_libgfortran_nonshared80_la_OBJECTS =
runtime/nonshared-error.lo $(am__objects_67)
libgfortran_nonshared80_la_OBJECTS = \
$(am_libgfortran_nonshared80_la_OBJECTS)
+@BUILD_NONSHARED_TRUE@am_libgfortran_nonshared80_la_rpath =
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
@@ -1078,15 +1081,15 @@ gcc_version := $(shell @get_gcc_base_ver
@LIBGFOR_USE_SYMVER_SUN_TRUE@@LIBGFOR_USE_SYMVER_TRUE@version_dep = gfortran.ver-sun gfortran.ver
extra_darwin_ldflags_libgfortran = @extra_ldflags_libgfortran@ \
$(am__append_1)
+@BUILD_NONSHARED_FALSE@nonshared_libs =
+@BUILD_NONSHARED_TRUE@nonshared_libs = libgfortran_nonshared80.la libgfortran_nonshared110.la libgfortran_nonshared140.la
gfor_c_HEADERS = ISO_Fortran_binding.h
gfor_cdir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include
LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS)) \
$(lt_host_flags)
toolexeclib_LTLIBRARIES = libgfortran.la
-noinst_LTLIBRARIES = libgfortran_nonshared80.la libgfortran_nonshared110.la \
- libgfortran_nonshared140.la
-
+noinst_LTLIBRARIES = $(nonshared_libs)
toolexeclib_DATA = libgfortran.spec
libgfortran_la_LINK = $(LINK) $(libgfortran_la_LDFLAGS)
libgfortran_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
@@ -4239,10 +4242,10 @@ runtime/nonshared-in_pack_class.lo: runt
runtime/$(DEPDIR)/$(am__dirstamp)
libgfortran_nonshared110.la: $(libgfortran_nonshared110_la_OBJECTS) $(libgfortran_nonshared110_la_DEPENDENCIES) $(EXTRA_libgfortran_nonshared110_la_DEPENDENCIES)
- $(AM_V_FCLD)$(FCLINK) $(libgfortran_nonshared110_la_OBJECTS) $(libgfortran_nonshared110_la_LIBADD) $(LIBS)
+ $(AM_V_FCLD)$(FCLINK) $(am_libgfortran_nonshared110_la_rpath) $(libgfortran_nonshared110_la_OBJECTS) $(libgfortran_nonshared110_la_LIBADD) $(LIBS)
libgfortran_nonshared140.la: $(libgfortran_nonshared140_la_OBJECTS) $(libgfortran_nonshared140_la_DEPENDENCIES) $(EXTRA_libgfortran_nonshared140_la_DEPENDENCIES)
- $(AM_V_FCLD)$(FCLINK) $(libgfortran_nonshared140_la_OBJECTS) $(libgfortran_nonshared140_la_LIBADD) $(LIBS)
+ $(AM_V_FCLD)$(FCLINK) $(am_libgfortran_nonshared140_la_rpath) $(libgfortran_nonshared140_la_OBJECTS) $(libgfortran_nonshared140_la_LIBADD) $(LIBS)
ieee/nonshared-ieee_arithmetic.lo: ieee/$(am__dirstamp) \
ieee/$(DEPDIR)/$(am__dirstamp)
io/nonshared-transfer.lo: io/$(am__dirstamp) \
@@ -4251,7 +4254,7 @@ runtime/nonshared-error.lo: runtime/$(am
runtime/$(DEPDIR)/$(am__dirstamp)
libgfortran_nonshared80.la: $(libgfortran_nonshared80_la_OBJECTS) $(libgfortran_nonshared80_la_DEPENDENCIES) $(EXTRA_libgfortran_nonshared80_la_DEPENDENCIES)
- $(AM_V_FCLD)$(FCLINK) $(libgfortran_nonshared80_la_OBJECTS) $(libgfortran_nonshared80_la_LIBADD) $(LIBS)
+ $(AM_V_FCLD)$(FCLINK) $(am_libgfortran_nonshared80_la_rpath) $(libgfortran_nonshared80_la_OBJECTS) $(libgfortran_nonshared80_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)