Skip to content

Commit 019fb48

Browse files
author
ro
committed
* configure.ac: Check for Sun symbol versioning.
* configure: Regenerate. * Makefile.am [LIBGFOR_USE_SYMVER]: Protect version_arg with LIBGFOR_USE_SYMVER_GNU. Add version_dep. [LIBGFOR_USE_SYMVER_SUN]: Handle Sun symbol versioning. [!LIBGFOR_USE_SYMVER]: Add version_dep. (libgfortran_la_DEPENDENCIES): Set to $(version_dep). * Makefile.in: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161697 138bc75d-0d04-0410-961f-82ee72b054a4
1 parent 55f10c8 commit 019fb48

File tree

5 files changed

+128
-11
lines changed

5 files changed

+128
-11
lines changed

libgfortran/ChangeLog

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,16 @@
1+
2010-07-02 Rainer Orth <[email protected]>
2+
3+
* configure.ac: Check for Sun symbol versioning.
4+
* configure: Regenerate.
5+
6+
* Makefile.am [LIBGFOR_USE_SYMVER]: Protect version_arg with
7+
LIBGFOR_USE_SYMVER_GNU.
8+
Add version_dep.
9+
[LIBGFOR_USE_SYMVER_SUN]: Handle Sun symbol versioning.
10+
[!LIBGFOR_USE_SYMVER]: Add version_dep.
11+
(libgfortran_la_DEPENDENCIES): Set to $(version_dep).
12+
* Makefile.in: Regenerate.
13+
114
2010-06-29 Jerry DeLisle <[email protected]>
215

316
PR libfortran/43298

libgfortran/Makefile.am

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,26 @@ gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER)
88

99
## Symbol versioning (copied from libssp).
1010
if LIBGFOR_USE_SYMVER
11+
if LIBGFOR_USE_SYMVER_GNU
1112
version_arg = -Wl,--version-script=$(srcdir)/gfortran.map
13+
version_dep = $(srcdir)/gfortran.map
14+
endif
15+
if LIBGFOR_USE_SYMVER_SUN
16+
version_arg = -Wl,-M,gfortran.map-sun
17+
version_dep = gfortran.map-sun
18+
gfortran.map-sun : $(srcdir)/gfortran.map \
19+
$(top_srcdir)/../contrib/make_sunver.pl \
20+
$(libgfortran_la_OBJECTS) $(libgfortran_la_LIBADD)
21+
perl $(top_srcdir)/../contrib/make_sunver.pl \
22+
$(srcdir)/gfortran.map \
23+
$(libgfortran_la_OBJECTS:%.lo=.libs/%.o) \
24+
`echo $(libgfortran_la_LIBADD) | \
25+
sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \
26+
> $@ || (rm -f $@ ; exit 1)
27+
endif
1228
else
1329
version_arg =
30+
version_dep =
1431
endif
1532

1633
LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS)) \
@@ -19,6 +36,7 @@ LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS)) \
1936
toolexeclib_LTLIBRARIES = libgfortran.la
2037
libgfortran_la_LINK = $(LINK) $(libgfortran_la_LDFLAGS)
2138
libgfortran_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LTLDFLAGS) -lm $(extra_ldflags_libgfortran) $(version_arg)
39+
libgfortran_la_DEPENDENCIES = $(version_dep)
2240

2341
myexeclib_LTLIBRARIES = libgfortranbegin.la
2442
myexeclibdir = $(libdir)/gcc/$(target_alias)/$(gcc_version)$(MULTISUBDIR)

libgfortran/Makefile.in

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -453,13 +453,18 @@ top_srcdir = @top_srcdir@
453453
ACLOCAL_AMFLAGS = -I .. -I ../config
454454
gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER)
455455
@LIBGFOR_USE_SYMVER_FALSE@version_arg =
456-
@LIBGFOR_USE_SYMVER_TRUE@version_arg = -Wl,--version-script=$(srcdir)/gfortran.map
456+
@LIBGFOR_USE_SYMVER_GNU_TRUE@@LIBGFOR_USE_SYMVER_TRUE@version_arg = -Wl,--version-script=$(srcdir)/gfortran.map
457+
@LIBGFOR_USE_SYMVER_SUN_TRUE@@LIBGFOR_USE_SYMVER_TRUE@version_arg = -Wl,-M,gfortran.map-sun
458+
@LIBGFOR_USE_SYMVER_FALSE@version_dep =
459+
@LIBGFOR_USE_SYMVER_GNU_TRUE@@LIBGFOR_USE_SYMVER_TRUE@version_dep = $(srcdir)/gfortran.map
460+
@LIBGFOR_USE_SYMVER_SUN_TRUE@@LIBGFOR_USE_SYMVER_TRUE@version_dep = gfortran.map-sun
457461
LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS)) \
458462
-no-undefined -bindir "$(bindir)"
459463

460464
toolexeclib_LTLIBRARIES = libgfortran.la
461465
libgfortran_la_LINK = $(LINK) $(libgfortran_la_LDFLAGS)
462466
libgfortran_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LTLDFLAGS) -lm $(extra_ldflags_libgfortran) $(version_arg)
467+
libgfortran_la_DEPENDENCIES = $(version_dep)
463468
myexeclib_LTLIBRARIES = libgfortranbegin.la
464469
myexeclibdir = $(libdir)/gcc/$(target_alias)/$(gcc_version)$(MULTISUBDIR)
465470
libgfortranbegin_la_SOURCES = fmain.c
@@ -5472,6 +5477,15 @@ uninstall-am: uninstall-myexeclibLTLIBRARIES \
54725477
uninstall-myexeclibLTLIBRARIES \
54735478
uninstall-toolexeclibLTLIBRARIES
54745479

5480+
@LIBGFOR_USE_SYMVER_SUN_TRUE@@[email protected] : $(srcdir)/gfortran.map \
5481+
@LIBGFOR_USE_SYMVER_SUN_TRUE@@LIBGFOR_USE_SYMVER_TRUE@ $(top_srcdir)/../contrib/make_sunver.pl \
5482+
@LIBGFOR_USE_SYMVER_SUN_TRUE@@LIBGFOR_USE_SYMVER_TRUE@ $(libgfortran_la_OBJECTS) $(libgfortran_la_LIBADD)
5483+
@LIBGFOR_USE_SYMVER_SUN_TRUE@@LIBGFOR_USE_SYMVER_TRUE@ perl $(top_srcdir)/../contrib/make_sunver.pl \
5484+
@LIBGFOR_USE_SYMVER_SUN_TRUE@@LIBGFOR_USE_SYMVER_TRUE@ $(srcdir)/gfortran.map \
5485+
@LIBGFOR_USE_SYMVER_SUN_TRUE@@LIBGFOR_USE_SYMVER_TRUE@ $(libgfortran_la_OBJECTS:%.lo=.libs/%.o) \
5486+
@LIBGFOR_USE_SYMVER_SUN_TRUE@@LIBGFOR_USE_SYMVER_TRUE@ `echo $(libgfortran_la_LIBADD) | \
5487+
@LIBGFOR_USE_SYMVER_SUN_TRUE@@LIBGFOR_USE_SYMVER_TRUE@ sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \
5488+
@LIBGFOR_USE_SYMVER_SUN_TRUE@@LIBGFOR_USE_SYMVER_TRUE@ > $@ || (rm -f $@ ; exit 1)
54755489

54765490
# Turn on vectorization and loop unrolling for matmul.
54775491
$(patsubst %.c,%.lo,$(notdir $(i_matmul_c))): AM_CFLAGS += -ftree-vectorize -funroll-loops

libgfortran/configure

Lines changed: 65 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -630,6 +630,10 @@ RANLIB
630630
AR
631631
AS
632632
SECTION_FLAGS
633+
LIBGFOR_USE_SYMVER_SUN_FALSE
634+
LIBGFOR_USE_SYMVER_SUN_TRUE
635+
LIBGFOR_USE_SYMVER_GNU_FALSE
636+
LIBGFOR_USE_SYMVER_GNU_TRUE
633637
LIBGFOR_USE_SYMVER_FALSE
634638
LIBGFOR_USE_SYMVER_TRUE
635639
AM_CFLAGS
@@ -4414,13 +4418,13 @@ fi
44144418
# Check for symbol versioning (copied from libssp).
44154419
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether symbol versioning is supported" >&5
44164420
$as_echo_n "checking whether symbol versioning is supported... " >&6; }
4421+
save_LDFLAGS="$LDFLAGS"
4422+
LDFLAGS="$LDFLAGS -fPIC -shared -Wl,--version-script,./conftest.map"
44174423
cat > conftest.map <<EOF
44184424
FOO_1.0 {
44194425
global: *foo*; bar; local: *;
44204426
};
44214427
EOF
4422-
save_LDFLAGS="$LDFLAGS"
4423-
LDFLAGS="$LDFLAGS -fPIC -shared -Wl,--version-script,./conftest.map"
44244428

44254429
if test x$gcc_no_link = xyes; then
44264430
as_fn_error "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
@@ -4437,23 +4441,70 @@ main ()
44374441
}
44384442
_ACEOF
44394443
if ac_fn_c_try_link "$LINENO"; then :
4440-
gfortran_use_symver=yes
4444+
gfortran_use_symver=gnu
4445+
else
4446+
gfortran_use_symver=no
4447+
fi
4448+
rm -f core conftest.err conftest.$ac_objext \
4449+
conftest$ac_exeext conftest.$ac_ext
4450+
if test x$gfortran_use_symver = xno; then
4451+
LDFLAGS="$save_LDFLAGS"
4452+
LDFLAGS="$LDFLAGS -fPIC -shared -Wl,-M,./conftest.map"
4453+
# Sun ld cannot handle wildcards and treats all entries as undefined.
4454+
cat > conftest.map <<EOF
4455+
FOO_1.0 {
4456+
global: foo; local: *;
4457+
};
4458+
EOF
4459+
if test x$gcc_no_link = xyes; then
4460+
as_fn_error "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
4461+
fi
4462+
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
4463+
/* end confdefs.h. */
4464+
int foo;
4465+
int
4466+
main ()
4467+
{
4468+
4469+
;
4470+
return 0;
4471+
}
4472+
_ACEOF
4473+
if ac_fn_c_try_link "$LINENO"; then :
4474+
gfortran_use_symver=sun
44414475
else
44424476
gfortran_use_symver=no
44434477
fi
44444478
rm -f core conftest.err conftest.$ac_objext \
44454479
conftest$ac_exeext conftest.$ac_ext
4480+
fi
44464481
LDFLAGS="$save_LDFLAGS"
44474482
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gfortran_use_symver" >&5
44484483
$as_echo "$gfortran_use_symver" >&6; }
4449-
if test "x$gfortran_use_symver" = xyes; then
4484+
if test "x$gfortran_use_symver" != xno; then
44504485
LIBGFOR_USE_SYMVER_TRUE=
44514486
LIBGFOR_USE_SYMVER_FALSE='#'
44524487
else
44534488
LIBGFOR_USE_SYMVER_TRUE='#'
44544489
LIBGFOR_USE_SYMVER_FALSE=
44554490
fi
44564491

4492+
if test "x$gfortran_use_symver" = xgnu; then
4493+
LIBGFOR_USE_SYMVER_GNU_TRUE=
4494+
LIBGFOR_USE_SYMVER_GNU_FALSE='#'
4495+
else
4496+
LIBGFOR_USE_SYMVER_GNU_TRUE='#'
4497+
LIBGFOR_USE_SYMVER_GNU_FALSE=
4498+
fi
4499+
4500+
if test "x$gfortran_use_symver" = xsun; then
4501+
LIBGFOR_USE_SYMVER_SUN_TRUE=
4502+
LIBGFOR_USE_SYMVER_SUN_FALSE='#'
4503+
else
4504+
LIBGFOR_USE_SYMVER_SUN_TRUE='#'
4505+
LIBGFOR_USE_SYMVER_SUN_FALSE=
4506+
fi
4507+
44574508

44584509
# Figure out whether the compiler supports "-ffunction-sections -fdata-sections",
44594510
# similarly to how libstdc++ does it
@@ -11307,7 +11358,7 @@ else
1130711358
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
1130811359
lt_status=$lt_dlunknown
1130911360
cat > conftest.$ac_ext <<_LT_EOF
11310-
#line 11310 "configure"
11361+
#line 11361 "configure"
1131111362
#include "confdefs.h"
1131211363

1131311364
#if HAVE_DLFCN_H
@@ -11413,7 +11464,7 @@ else
1141311464
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
1141411465
lt_status=$lt_dlunknown
1141511466
cat > conftest.$ac_ext <<_LT_EOF
11416-
#line 11416 "configure"
11467+
#line 11467 "configure"
1141711468
#include "confdefs.h"
1141811469

1141911470
#if HAVE_DLFCN_H
@@ -25091,6 +25142,14 @@ if test -z "${LIBGFOR_USE_SYMVER_TRUE}" && test -z "${LIBGFOR_USE_SYMVER_FALSE}"
2509125142
as_fn_error "conditional \"LIBGFOR_USE_SYMVER\" was never defined.
2509225143
Usually this means the macro was only invoked conditionally." "$LINENO" 5
2509325144
fi
25145+
if test -z "${LIBGFOR_USE_SYMVER_GNU_TRUE}" && test -z "${LIBGFOR_USE_SYMVER_GNU_FALSE}"; then
25146+
as_fn_error "conditional \"LIBGFOR_USE_SYMVER_GNU\" was never defined.
25147+
Usually this means the macro was only invoked conditionally." "$LINENO" 5
25148+
fi
25149+
if test -z "${LIBGFOR_USE_SYMVER_SUN_TRUE}" && test -z "${LIBGFOR_USE_SYMVER_SUN_FALSE}"; then
25150+
as_fn_error "conditional \"LIBGFOR_USE_SYMVER_SUN\" was never defined.
25151+
Usually this means the macro was only invoked conditionally." "$LINENO" 5
25152+
fi
2509425153

2509525154
: ${CONFIG_STATUS=./config.status}
2509625155
ac_write_fail=0

libgfortran/configure.ac

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -138,17 +138,30 @@ AC_SUBST(CFLAGS)
138138

139139
# Check for symbol versioning (copied from libssp).
140140
AC_MSG_CHECKING([whether symbol versioning is supported])
141+
save_LDFLAGS="$LDFLAGS"
142+
LDFLAGS="$LDFLAGS -fPIC -shared -Wl,--version-script,./conftest.map"
141143
cat > conftest.map <<EOF
142144
FOO_1.0 {
143145
global: *foo*; bar; local: *;
144146
};
145147
EOF
146-
save_LDFLAGS="$LDFLAGS"
147-
LDFLAGS="$LDFLAGS -fPIC -shared -Wl,--version-script,./conftest.map"
148-
AC_TRY_LINK([int foo;],[],[gfortran_use_symver=yes],[gfortran_use_symver=no])
148+
AC_TRY_LINK([int foo;],[],[gfortran_use_symver=gnu],[gfortran_use_symver=no])
149+
if test x$gfortran_use_symver = xno; then
150+
LDFLAGS="$save_LDFLAGS"
151+
LDFLAGS="$LDFLAGS -fPIC -shared -Wl,-M,./conftest.map"
152+
# Sun ld cannot handle wildcards and treats all entries as undefined.
153+
cat > conftest.map <<EOF
154+
FOO_1.0 {
155+
global: foo; local: *;
156+
};
157+
EOF
158+
AC_TRY_LINK([int foo;],[],[gfortran_use_symver=sun],[gfortran_use_symver=no])
159+
fi
149160
LDFLAGS="$save_LDFLAGS"
150161
AC_MSG_RESULT($gfortran_use_symver)
151-
AM_CONDITIONAL(LIBGFOR_USE_SYMVER, [test "x$gfortran_use_symver" = xyes])
162+
AM_CONDITIONAL(LIBGFOR_USE_SYMVER, [test "x$gfortran_use_symver" != xno])
163+
AM_CONDITIONAL(LIBGFOR_USE_SYMVER_GNU, [test "x$gfortran_use_symver" = xgnu])
164+
AM_CONDITIONAL(LIBGFOR_USE_SYMVER_SUN, [test "x$gfortran_use_symver" = xsun])
152165

153166
# Figure out whether the compiler supports "-ffunction-sections -fdata-sections",
154167
# similarly to how libstdc++ does it

0 commit comments

Comments
 (0)