Commit e3aa9eba by Rainer Orth Committed by Rainer Orth

Centralize PICFLAG configuration

	config:
	* picflag.m4: New file.

	gcc:
	* configure.ac (GCC_PICFLAG_FOR_TARGET): Call it.
	(PICFLAG_FOR_TARGET): Substitute.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

	gcc/ada:
	* gcc-interface/Makefile.in (PICFLAG_FOR_TARGET): New.
	(GNATLIBCFLAGS_FOR_C): Replace
	TARGET_LIBGCC2_CFLAGS by PICFLAG_FOR_TARGET.
	(gnatlib-shared-default, gnatlib-shared-dual-win32)
	(gnatlib-shared-win32, gnatlib-shared-darwin, gnatlib-shared)
	(gnatlib-sjlj, gnatlib-zcx): Likewise.

	libada:
	* configure.ac: Include ../config/picflag.m4.
	(GCC_PICFLAG): Call it.
	Substitute.
	* configure: Regenerate.
	* Makefile.in (TARGET_LIBGCC2_CFLAGS): Replace by PICFLAG.
	(GNATLIBCFLAGS_FOR_C): Replace TARGET_LIBGCC2_CFLAGS by PICFLAG.
	(LIBADA_FLAGS_TO_PASS): Pass PICFLAG as PICFLAG_FOR_TARGET.
	Don't include $(GCC_DIR)/libgcc.mvars.

	libiberty:
	* aclocal.m4: Include ../config/picflag.m4.
	* configure.ac (GCC_PICFLAG): Call it.
	(enable_shared): Clear PICFLAG unless shared.
	* configure: Regenerate.

From-SVN: r177967
parent eb3e9f60
2011-08-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* picflag.m4: New file.
2011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* elf.m4 (target_elf): Remove *-netware*. * elf.m4 (target_elf): Remove *-netware*.
......
# _GCC_PICFLAG(FLAG, DISPATCH)
# ----------------------------
# Store PIC flag corresponding to DISPATCH triplet in FLAG.
# Explit use of -fpic in CFLAGS corresponding to FLAG overrides default.
AC_DEFUN([_GCC_PICFLAG], [
case "${$2}" in
# PIC is the default on some targets or must not be used.
*-*-darwin*)
# PIC is the default on this platform
# Common symbols not allowed in MH_DYLIB files
$1=-fno-common
;;
alpha*-dec-osf5*)
# PIC is the default.
;;
hppa*64*-*-hpux*)
# PIC is the default for 64-bit PA HP-UX.
;;
i[[34567]]86-*-cygwin* | i[[34567]]86-*-mingw* | x86_64-*-mingw*)
;;
i[[34567]]86-*-interix3*)
# Interix 3.x gcc -fpic/-fPIC options generate broken code.
# Instead, we relocate shared libraries at runtime.
;;
i[[34567]]86-*-nto-qnx*)
# QNX uses GNU C++, but need to define -shared option too, otherwise
# it will coredump.
$1='-fPIC -shared'
;;
i[[34567]]86-pc-msdosdjgpp*)
# DJGPP does not support shared libraries at all.
;;
ia64*-*-hpux*)
# On IA64 HP-UX, PIC is the default but the pic flag
# sets the default TLS model and affects inlining.
$1=-fPIC
;;
mips-sgi-irix6*)
# PIC is the default.
;;
rs6000-ibm-aix* | powerpc-ibm-aix*)
# All AIX code is PIC.
;;
# Some targets support both -fPIC and -fpic, but prefer the latter.
# FIXME: Why?
i[[34567]]86-*-* | x86_64-*-*)
$1=-fpic
;;
m68k-*-*)
$1=-fpic
;;
s390*-*-*)
$1=-fpic
;;
# FIXME: Override -fPIC default in libgcc only?
sh-*-linux* | sh[[2346lbe]]*-*-linux*)
$1=-fpic
;;
# FIXME: Simplify to sh*-*-netbsd*?
sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
sh64-*-netbsd* | sh64l*-*-netbsd*)
$1=-fpic
;;
# Default to -fPIC unless specified otherwise.
*)
$1=-fPIC
;;
esac
# If the user explicitly uses -fpic/-fPIC, keep that.
case "${m4_bpatsubsts($1, PICFLAG, CFLAGS)}" in
*-fpic*)
$1=-fpic
;;
*-fPIC*)
$1=-fPIC
;;
esac
])
# GCC_PICFLAG
# -----------
# Store host PIC flag in PICFLAG.
AC_DEFUN([GCC_PICFLAG], [
AC_REQUIRE([AC_CANONICAL_HOST])
_GCC_PICFLAG([PICFLAG], [host])])
# GCC_PICFLAG_FOR_TARGET
# ----------------------
# Store target PIC flag in PICFLAG_FOR_TARGET.
AC_DEFUN([GCC_PICFLAG_FOR_TARGET], [
AC_REQUIRE([AC_CANONICAL_TARGET])
_GCC_PICFLAG([PICFLAG_FOR_TARGET], [target])])
2011-08-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* configure.ac (GCC_PICFLAG_FOR_TARGET): Call it.
(PICFLAG_FOR_TARGET): Substitute.
* aclocal.m4: Regenerate.
* configure: Regenerate.
2011-08-22 Dodji Seketeli <dodji@redhat.com> 2011-08-22 Dodji Seketeli <dodji@redhat.com>
* c-family/c-pch.c (c_common_read_pch): Re-set line table right * c-family/c-pch.c (c_common_read_pch): Re-set line table right
......
...@@ -114,6 +114,7 @@ m4_include([../config/lib-ld.m4]) ...@@ -114,6 +114,7 @@ m4_include([../config/lib-ld.m4])
m4_include([../config/lib-link.m4]) m4_include([../config/lib-link.m4])
m4_include([../config/lib-prefix.m4]) m4_include([../config/lib-prefix.m4])
m4_include([../config/override.m4]) m4_include([../config/override.m4])
m4_include([../config/picflag.m4])
m4_include([../config/progtest.m4]) m4_include([../config/progtest.m4])
m4_include([../config/stdint.m4]) m4_include([../config/stdint.m4])
m4_include([../config/warnings.m4]) m4_include([../config/warnings.m4])
......
2011-08-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* gcc-interface/Makefile.in (PICFLAG_FOR_TARGET): New.
(GNATLIBCFLAGS_FOR_C): Replace
TARGET_LIBGCC2_CFLAGS by PICFLAG_FOR_TARGET.
(gnatlib-shared-default, gnatlib-shared-dual-win32)
(gnatlib-shared-win32, gnatlib-shared-darwin, gnatlib-shared)
(gnatlib-sjlj, gnatlib-zcx): Likewise.
2011-08-07 Eric Botcazou <ebotcazou@adacore.com> 2011-08-07 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/Makefile.in (raise-gcc.o): Fix previous change. * gcc-interface/Makefile.in (raise-gcc.o): Fix previous change.
......
...@@ -111,10 +111,11 @@ NO_SIBLING_ADAFLAGS=-fno-optimize-sibling-calls ...@@ -111,10 +111,11 @@ NO_SIBLING_ADAFLAGS=-fno-optimize-sibling-calls
NO_REORDER_ADAFLAGS=-fno-toplevel-reorder NO_REORDER_ADAFLAGS=-fno-toplevel-reorder
GNATLIBFLAGS = -gnatpg -nostdinc GNATLIBFLAGS = -gnatpg -nostdinc
GNATLIBCFLAGS = -g -O2 GNATLIBCFLAGS = -g -O2
PICFLAG_FOR_TARGET = @PICFLAG_FOR_TARGET@
# Pretend that _Unwind_GetIPInfo is available for the target by default. This # Pretend that _Unwind_GetIPInfo is available for the target by default. This
# should be autodetected during the configuration of libada and passed down to # should be autodetected during the configuration of libada and passed down to
# here, but we need something for --disable-libada and hope for the best. # here, but we need something for --disable-libada and hope for the best.
GNATLIBCFLAGS_FOR_C = $(GNATLIBCFLAGS) $(TARGET_LIBGCC2_CFLAGS) -fexceptions \ GNATLIBCFLAGS_FOR_C = $(GNATLIBCFLAGS) $(PICFLAG_FOR_TARGET) -fexceptions \
-DIN_RTS -DHAVE_GETIPINFO -DIN_RTS -DHAVE_GETIPINFO
ALL_ADAFLAGS = $(CFLAGS) $(ADA_CFLAGS) $(ADAFLAGS) ALL_ADAFLAGS = $(CFLAGS) $(ADA_CFLAGS) $(ADAFLAGS)
MOST_ADAFLAGS = $(CFLAGS) $(ADA_CFLAGS) $(SOME_ADAFLAGS) MOST_ADAFLAGS = $(CFLAGS) $(ADA_CFLAGS) $(SOME_ADAFLAGS)
...@@ -2482,7 +2483,7 @@ gnatlib: ../stamp-gnatlib1-$(RTSDIR) ../stamp-gnatlib2-$(RTSDIR) ...@@ -2482,7 +2483,7 @@ gnatlib: ../stamp-gnatlib1-$(RTSDIR) ../stamp-gnatlib2-$(RTSDIR)
gnatlib-shared-default: gnatlib-shared-default:
$(MAKE) $(FLAGS_TO_PASS) \ $(MAKE) $(FLAGS_TO_PASS) \
GNATLIBFLAGS="$(GNATLIBFLAGS)" \ GNATLIBFLAGS="$(GNATLIBFLAGS)" \
GNATLIBCFLAGS="$(GNATLIBCFLAGS) $(TARGET_LIBGCC2_CFLAGS)" \ GNATLIBCFLAGS="$(GNATLIBCFLAGS) $(PICFLAG_FOR_TARGET)" \
GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \ GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
MULTISUBDIR="$(MULTISUBDIR)" \ MULTISUBDIR="$(MULTISUBDIR)" \
THREAD_KIND="$(THREAD_KIND)" \ THREAD_KIND="$(THREAD_KIND)" \
...@@ -2490,14 +2491,14 @@ gnatlib-shared-default: ...@@ -2490,14 +2491,14 @@ gnatlib-shared-default:
$(RM) $(RTSDIR)/libgna*$(soext) $(RM) $(RTSDIR)/libgna*$(soext)
cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \ cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \
| sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared $(GNATLIBCFLAGS) \ | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared $(GNATLIBCFLAGS) \
$(TARGET_LIBGCC2_CFLAGS) \ $(PICFLAG_FOR_TARGET) \
-o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
$(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \ $(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \
$(SO_OPTS)libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ $(SO_OPTS)libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
$(MISCLIB) -lm $(MISCLIB) -lm
cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \ cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \
| sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared $(GNATLIBCFLAGS) \ | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared $(GNATLIBCFLAGS) \
$(TARGET_LIBGCC2_CFLAGS) \ $(PICFLAG_FOR_TARGET) \
-o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ -o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
$(GNATRTL_TASKING_OBJS) \ $(GNATRTL_TASKING_OBJS) \
$(SO_OPTS)libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ $(SO_OPTS)libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
...@@ -2529,7 +2530,7 @@ gnatlib-shared-dual: ...@@ -2529,7 +2530,7 @@ gnatlib-shared-dual:
gnatlib-shared-dual-win32: gnatlib-shared-dual-win32:
$(MAKE) $(FLAGS_TO_PASS) \ $(MAKE) $(FLAGS_TO_PASS) \
GNATLIBFLAGS="$(GNATLIBFLAGS)" \ GNATLIBFLAGS="$(GNATLIBFLAGS)" \
GNATLIBCFLAGS="$(GNATLIBCFLAGS) $(TARGET_LIBGCC2_CFLAGS)" \ GNATLIBCFLAGS="$(GNATLIBCFLAGS) $(PICFLAG_FOR_TARGET)" \
GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \ GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
MULTISUBDIR="$(MULTISUBDIR)" \ MULTISUBDIR="$(MULTISUBDIR)" \
THREAD_KIND="$(THREAD_KIND)" \ THREAD_KIND="$(THREAD_KIND)" \
...@@ -2552,7 +2553,7 @@ gnatlib-shared-dual-win32: ...@@ -2552,7 +2553,7 @@ gnatlib-shared-dual-win32:
gnatlib-shared-win32: gnatlib-shared-win32:
$(MAKE) $(FLAGS_TO_PASS) \ $(MAKE) $(FLAGS_TO_PASS) \
GNATLIBFLAGS="$(GNATLIBFLAGS)" \ GNATLIBFLAGS="$(GNATLIBFLAGS)" \
GNATLIBCFLAGS="$(GNATLIBCFLAGS) $(TARGET_LIBGCC2_CFLAGS)" \ GNATLIBCFLAGS="$(GNATLIBCFLAGS) $(PICFLAG_FOR_TARGET)" \
GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \ GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
MULTISUBDIR="$(MULTISUBDIR)" \ MULTISUBDIR="$(MULTISUBDIR)" \
THREAD_KIND="$(THREAD_KIND)" \ THREAD_KIND="$(THREAD_KIND)" \
...@@ -2560,13 +2561,13 @@ gnatlib-shared-win32: ...@@ -2560,13 +2561,13 @@ gnatlib-shared-win32:
$(RM) $(RTSDIR)/libgna*$(soext) $(RM) $(RTSDIR)/libgna*$(soext)
cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \ cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \
| sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared -shared-libgcc \ | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared -shared-libgcc \
$(TARGET_LIBGCC2_CFLAGS) \ $(PICFLAG_FOR_TARGET) \
-o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
$(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \ $(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \
$(SO_OPTS)libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) $(MISCLIB) $(SO_OPTS)libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) $(MISCLIB)
cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \ cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \
| sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared -shared-libgcc \ | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared -shared-libgcc \
$(TARGET_LIBGCC2_CFLAGS) \ $(PICFLAG_FOR_TARGET) \
-o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ -o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
$(GNATRTL_TASKING_OBJS) \ $(GNATRTL_TASKING_OBJS) \
$(SO_OPTS)libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ $(SO_OPTS)libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
...@@ -2575,21 +2576,21 @@ gnatlib-shared-win32: ...@@ -2575,21 +2576,21 @@ gnatlib-shared-win32:
gnatlib-shared-darwin: gnatlib-shared-darwin:
$(MAKE) $(FLAGS_TO_PASS) \ $(MAKE) $(FLAGS_TO_PASS) \
GNATLIBFLAGS="$(GNATLIBFLAGS)" \ GNATLIBFLAGS="$(GNATLIBFLAGS)" \
GNATLIBCFLAGS="$(GNATLIBCFLAGS) $(TARGET_LIBGCC2_CFLAGS)" \ GNATLIBCFLAGS="$(GNATLIBCFLAGS) $(PICFLAG_FOR_TARGET)" \
GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C) -fno-common" \ GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C) -fno-common" \
MULTISUBDIR="$(MULTISUBDIR)" \ MULTISUBDIR="$(MULTISUBDIR)" \
THREAD_KIND="$(THREAD_KIND)" \ THREAD_KIND="$(THREAD_KIND)" \
gnatlib gnatlib
$(RM) $(RTSDIR)/libgnat$(soext) $(RTSDIR)/libgnarl$(soext) $(RM) $(RTSDIR)/libgnat$(soext) $(RTSDIR)/libgnarl$(soext)
cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \ cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \
| sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -dynamiclib $(TARGET_LIBGCC2_CFLAGS) \ | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -dynamiclib $(PICFLAG_FOR_TARGET) \
-o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
$(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \ $(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \
$(SO_OPTS) \ $(SO_OPTS) \
-Wl,-install_name,@rpath/libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ -Wl,-install_name,@rpath/libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
$(MISCLIB) -lm $(MISCLIB) -lm
cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \ cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \
| sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -dynamiclib $(TARGET_LIBGCC2_CFLAGS) \ | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -dynamiclib $(PICFLAG_FOR_TARGET) \
-o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ -o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
$(GNATRTL_TASKING_OBJS) \ $(GNATRTL_TASKING_OBJS) \
$(SO_OPTS) \ $(SO_OPTS) \
...@@ -2638,7 +2639,7 @@ gnatlib-shared: ...@@ -2638,7 +2639,7 @@ gnatlib-shared:
GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \ GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
MULTISUBDIR="$(MULTISUBDIR)" \ MULTISUBDIR="$(MULTISUBDIR)" \
THREAD_KIND="$(THREAD_KIND)" \ THREAD_KIND="$(THREAD_KIND)" \
TARGET_LIBGCC2_CFLAGS="$(TARGET_LIBGCC2_CFLAGS)" \ PICFLAG_FOR_TARGET="$(PICFLAG_FOR_TARGET)" \
$(GNATLIB_SHARED) $(GNATLIB_SHARED)
gnatlib-sjlj: gnatlib-sjlj:
...@@ -2653,7 +2654,7 @@ gnatlib-sjlj: ...@@ -2653,7 +2654,7 @@ gnatlib-sjlj:
GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \ GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
MULTISUBDIR="$(MULTISUBDIR)" \ MULTISUBDIR="$(MULTISUBDIR)" \
THREAD_KIND="$(THREAD_KIND)" \ THREAD_KIND="$(THREAD_KIND)" \
TARGET_LIBGCC2_CFLAGS="$(TARGET_LIBGCC2_CFLAGS)" gnatlib PICFLAG_FOR_TARGET="$(PICFLAG_FOR_TARGET)" gnatlib
gnatlib-zcx: gnatlib-zcx:
$(MAKE) $(FLAGS_TO_PASS) EH_MECHANISM="-gcc" \ $(MAKE) $(FLAGS_TO_PASS) EH_MECHANISM="-gcc" \
...@@ -2667,7 +2668,7 @@ gnatlib-zcx: ...@@ -2667,7 +2668,7 @@ gnatlib-zcx:
GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \ GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
MULTISUBDIR="$(MULTISUBDIR)" \ MULTISUBDIR="$(MULTISUBDIR)" \
THREAD_KIND="$(THREAD_KIND)" \ THREAD_KIND="$(THREAD_KIND)" \
TARGET_LIBGCC2_CFLAGS="$(TARGET_LIBGCC2_CFLAGS)" gnatlib PICFLAG_FOR_TARGET="$(PICFLAG_FOR_TARGET)" gnatlib
# .s files for cross-building # .s files for cross-building
gnat-cross: force gnat-cross: force
......
...@@ -784,6 +784,7 @@ loose_warn ...@@ -784,6 +784,7 @@ loose_warn
EGREP EGREP
GREP GREP
CPP CPP
PICFLAG_FOR_TARGET
OUTPUT_OPTION OUTPUT_OPTION
NO_MINUS_C_MINUS_O NO_MINUS_C_MINUS_O
GNATMAKE GNATMAKE
...@@ -4873,6 +4874,88 @@ case "$CC" in ...@@ -4873,6 +4874,88 @@ case "$CC" in
esac esac
# Determine PICFLAG for target gnatlib.
case "${target}" in
# PIC is the default on some targets or must not be used.
*-*-darwin*)
# PIC is the default on this platform
# Common symbols not allowed in MH_DYLIB files
PICFLAG_FOR_TARGET=-fno-common
;;
alpha*-dec-osf5*)
# PIC is the default.
;;
hppa*64*-*-hpux*)
# PIC is the default for 64-bit PA HP-UX.
;;
i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw*)
;;
i[34567]86-*-interix3*)
# Interix 3.x gcc -fpic/-fPIC options generate broken code.
# Instead, we relocate shared libraries at runtime.
;;
i[34567]86-*-nto-qnx*)
# QNX uses GNU C++, but need to define -shared option too, otherwise
# it will coredump.
PICFLAG_FOR_TARGET='-fPIC -shared'
;;
i[34567]86-pc-msdosdjgpp*)
# DJGPP does not support shared libraries at all.
;;
ia64*-*-hpux*)
# On IA64 HP-UX, PIC is the default but the pic flag
# sets the default TLS model and affects inlining.
PICFLAG_FOR_TARGET=-fPIC
;;
mips-sgi-irix6*)
# PIC is the default.
;;
rs6000-ibm-aix* | powerpc-ibm-aix*)
# All AIX code is PIC.
;;
# Some targets support both -fPIC and -fpic, but prefer the latter.
# FIXME: Why?
i[34567]86-*-* | x86_64-*-*)
PICFLAG_FOR_TARGET=-fpic
;;
m68k-*-*)
PICFLAG_FOR_TARGET=-fpic
;;
s390*-*-*)
PICFLAG_FOR_TARGET=-fpic
;;
# FIXME: Override -fPIC default in libgcc only?
sh-*-linux* | sh[2346lbe]*-*-linux*)
PICFLAG_FOR_TARGET=-fpic
;;
# FIXME: Simplify to sh*-*-netbsd*?
sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
sh64-*-netbsd* | sh64l*-*-netbsd*)
PICFLAG_FOR_TARGET=-fpic
;;
# Default to -fPIC unless specified otherwise.
*)
PICFLAG_FOR_TARGET=-fPIC
;;
esac
# If the user explicitly uses -fpic/-fPIC, keep that.
case "${CFLAGS_FOR_TARGET}" in
*-fpic*)
PICFLAG_FOR_TARGET=-fpic
;;
*-fPIC*)
PICFLAG_FOR_TARGET=-fPIC
;;
esac
# ------------------------- # -------------------------
# Check C compiler features # Check C compiler features
# ------------------------- # -------------------------
...@@ -17830,7 +17913,7 @@ else ...@@ -17830,7 +17913,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF cat > conftest.$ac_ext <<_LT_EOF
#line 17833 "configure" #line 17916 "configure"
#include "confdefs.h" #include "confdefs.h"
#if HAVE_DLFCN_H #if HAVE_DLFCN_H
...@@ -17936,7 +18019,7 @@ else ...@@ -17936,7 +18019,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF cat > conftest.$ac_ext <<_LT_EOF
#line 17939 "configure" #line 18022 "configure"
#include "confdefs.h" #include "confdefs.h"
#if HAVE_DLFCN_H #if HAVE_DLFCN_H
......
...@@ -297,6 +297,10 @@ case "$CC" in ...@@ -297,6 +297,10 @@ case "$CC" in
esac esac
AC_SUBST(CFLAGS) AC_SUBST(CFLAGS)
# Determine PICFLAG for target gnatlib.
GCC_PICFLAG_FOR_TARGET
AC_SUBST(PICFLAG_FOR_TARGET)
# ------------------------- # -------------------------
# Check C compiler features # Check C compiler features
# ------------------------- # -------------------------
......
2011-08-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* configure.ac: Include ../config/picflag.m4.
(GCC_PICFLAG): Call it.
Substitute.
* configure: Regenerate.
* Makefile.in (TARGET_LIBGCC2_CFLAGS): Replace by PICFLAG.
(GNATLIBCFLAGS_FOR_C): Replace TARGET_LIBGCC2_CFLAGS by PICFLAG.
(LIBADA_FLAGS_TO_PASS): Pass PICFLAG as PICFLAG_FOR_TARGET.
Don't include $(GCC_DIR)/libgcc.mvars.
2010-11-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2010-11-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
PR other/46202 PR other/46202
......
# Makefile for libada. # Makefile for libada.
# Copyright 2003, 2004, 2009, 2010 Free Software Foundation, Inc. # Copyright 2003, 2004, 2009, 2010, 2011 Free Software Foundation, Inc.
# #
# This file is free software; you can redistribute it and/or modify # This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
...@@ -56,15 +56,13 @@ LOOSE_WARN = -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes ...@@ -56,15 +56,13 @@ LOOSE_WARN = -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes
GCC_WARN_CFLAGS = $(LOOSE_WARN) GCC_WARN_CFLAGS = $(LOOSE_WARN)
WARN_CFLAGS = @warn_cflags@ WARN_CFLAGS = @warn_cflags@
TARGET_LIBGCC2_CFLAGS= PICFLAG = @PICFLAG@
GNATLIBCFLAGS= -g -O2 GNATLIBCFLAGS= -g -O2
GNATLIBCFLAGS_FOR_C = $(GNATLIBCFLAGS) $(TARGET_LIBGCC2_CFLAGS) -fexceptions \ GNATLIBCFLAGS_FOR_C = $(GNATLIBCFLAGS) $(PICFLAG) -fexceptions \
-DIN_RTS @have_getipinfo@ -DIN_RTS @have_getipinfo@
# Get target-specific overrides for TARGET_LIBGCC2_CFLAGS.
host_subdir = @host_subdir@ host_subdir = @host_subdir@
GCC_DIR=$(MULTIBUILDTOP)../../$(host_subdir)/gcc GCC_DIR=$(MULTIBUILDTOP)../../$(host_subdir)/gcc
include $(GCC_DIR)/libgcc.mvars
target_noncanonical:=@target_noncanonical@ target_noncanonical:=@target_noncanonical@
version := $(shell cat $(srcdir)/../gcc/BASE-VER) version := $(shell cat $(srcdir)/../gcc/BASE-VER)
...@@ -83,7 +81,7 @@ LIBADA_FLAGS_TO_PASS = \ ...@@ -83,7 +81,7 @@ LIBADA_FLAGS_TO_PASS = \
"GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS)" \ "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS)" \
"GNATLIBCFLAGS=$(GNATLIBCFLAGS) $(MULTIFLAGS)" \ "GNATLIBCFLAGS=$(GNATLIBCFLAGS) $(MULTIFLAGS)" \
"GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS)" \ "GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS)" \
"TARGET_LIBGCC2_CFLAGS=$(TARGET_LIBGCC2_CFLAGS)" \ "PICFLAG_FOR_TARGET=$(PICFLAG)" \
"THREAD_KIND=$(THREAD_KIND)" \ "THREAD_KIND=$(THREAD_KIND)" \
"TRACE=$(TRACE)" \ "TRACE=$(TRACE)" \
"MULTISUBDIR=$(MULTISUBDIR)" \ "MULTISUBDIR=$(MULTISUBDIR)" \
......
...@@ -558,6 +558,7 @@ have_getipinfo ...@@ -558,6 +558,7 @@ have_getipinfo
default_gnatlib_target default_gnatlib_target
LN_S LN_S
AWK AWK
PICFLAG
enable_shared enable_shared
OBJEXT OBJEXT
EXEEXT EXEEXT
...@@ -2817,6 +2818,87 @@ fi ...@@ -2817,6 +2818,87 @@ fi
case "${host}" in
# PIC is the default on some targets or must not be used.
*-*-darwin*)
# PIC is the default on this platform
# Common symbols not allowed in MH_DYLIB files
PICFLAG=-fno-common
;;
alpha*-dec-osf5*)
# PIC is the default.
;;
hppa*64*-*-hpux*)
# PIC is the default for 64-bit PA HP-UX.
;;
i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw*)
;;
i[34567]86-*-interix3*)
# Interix 3.x gcc -fpic/-fPIC options generate broken code.
# Instead, we relocate shared libraries at runtime.
;;
i[34567]86-*-nto-qnx*)
# QNX uses GNU C++, but need to define -shared option too, otherwise
# it will coredump.
PICFLAG='-fPIC -shared'
;;
i[34567]86-pc-msdosdjgpp*)
# DJGPP does not support shared libraries at all.
;;
ia64*-*-hpux*)
# On IA64 HP-UX, PIC is the default but the pic flag
# sets the default TLS model and affects inlining.
PICFLAG=-fPIC
;;
mips-sgi-irix6*)
# PIC is the default.
;;
rs6000-ibm-aix* | powerpc-ibm-aix*)
# All AIX code is PIC.
;;
# Some targets support both -fPIC and -fpic, but prefer the latter.
# FIXME: Why?
i[34567]86-*-* | x86_64-*-*)
PICFLAG=-fpic
;;
m68k-*-*)
PICFLAG=-fpic
;;
s390*-*-*)
PICFLAG=-fpic
;;
# FIXME: Override -fPIC default in libgcc only?
sh-*-linux* | sh[2346lbe]*-*-linux*)
PICFLAG=-fpic
;;
# FIXME: Simplify to sh*-*-netbsd*?
sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
sh64-*-netbsd* | sh64l*-*-netbsd*)
PICFLAG=-fpic
;;
# Default to -fPIC unless specified otherwise.
*)
PICFLAG=-fPIC
;;
esac
# If the user explicitly uses -fpic/-fPIC, keep that.
case "${CFLAGS}" in
*-fpic*)
PICFLAG=-fpic
;;
*-fPIC*)
PICFLAG=-fPIC
;;
esac
# These must be passed down, or are needed by gcc/libgcc.mvars # These must be passed down, or are needed by gcc/libgcc.mvars
for ac_prog in gawk mawk nawk awk for ac_prog in gawk mawk nawk awk
do do
......
# Configure script for libada. # Configure script for libada.
# Copyright 2003, 2004, 2009 Free Software Foundation, Inc. # Copyright 2003, 2004, 2009, 2011 Free Software Foundation, Inc.
# #
# This file is free software; you can redistribute it and/or modify it # This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by # under the terms of the GNU General Public License as published by
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
sinclude(../config/acx.m4) sinclude(../config/acx.m4)
sinclude(../config/multi.m4) sinclude(../config/multi.m4)
sinclude(../config/override.m4) sinclude(../config/override.m4)
sinclude(../config/picflag.m4)
sinclude(../config/unwind_ipinfo.m4) sinclude(../config/unwind_ipinfo.m4)
AC_INIT AC_INIT
...@@ -118,6 +119,9 @@ esac ...@@ -118,6 +119,9 @@ esac
], [enable_shared=yes]) ], [enable_shared=yes])
AC_SUBST([enable_shared]) AC_SUBST([enable_shared])
GCC_PICFLAG
AC_SUBST([PICFLAG])
# These must be passed down, or are needed by gcc/libgcc.mvars # These must be passed down, or are needed by gcc/libgcc.mvars
AC_PROG_AWK AC_PROG_AWK
AC_PROG_LN_S AC_PROG_LN_S
......
2011-08-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* aclocal.m4: Include ../config/picflag.m4.
* configure.ac (GCC_PICFLAG): Call it.
(enable_shared): Clear PICFLAG unless shared.
* configure: Regenerate.
2011-08-12 Steve Ellcey <sje@cup.hp.com> 2011-08-12 Steve Ellcey <sje@cup.hp.com>
* md5.c (md5_read_ctx): Handle mis-aligned resbuf pointer. * md5.c (md5_read_ctx): Handle mis-aligned resbuf pointer.
......
sinclude(../config/acx.m4) sinclude(../config/acx.m4)
sinclude(../config/no-executables.m4) sinclude(../config/no-executables.m4)
sinclude(../config/override.m4) sinclude(../config/override.m4)
sinclude(../config/picflag.m4)
sinclude(../config/warnings.m4) sinclude(../config/warnings.m4)
dnl See whether strncmp reads past the end of its string parameters. dnl See whether strncmp reads past the end of its string parameters.
......
...@@ -4840,6 +4840,86 @@ if [ -n "${frag}" ]; then ...@@ -4840,6 +4840,86 @@ if [ -n "${frag}" ]; then
frag=${libiberty_topdir}/libiberty/config/$frag frag=${libiberty_topdir}/libiberty/config/$frag
fi fi
case "${host}" in
# PIC is the default on some targets or must not be used.
*-*-darwin*)
# PIC is the default on this platform
# Common symbols not allowed in MH_DYLIB files
PICFLAG=-fno-common
;;
alpha*-dec-osf5*)
# PIC is the default.
;;
hppa*64*-*-hpux*)
# PIC is the default for 64-bit PA HP-UX.
;;
i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw*)
;;
i[34567]86-*-interix3*)
# Interix 3.x gcc -fpic/-fPIC options generate broken code.
# Instead, we relocate shared libraries at runtime.
;;
i[34567]86-*-nto-qnx*)
# QNX uses GNU C++, but need to define -shared option too, otherwise
# it will coredump.
PICFLAG='-fPIC -shared'
;;
i[34567]86-pc-msdosdjgpp*)
# DJGPP does not support shared libraries at all.
;;
ia64*-*-hpux*)
# On IA64 HP-UX, PIC is the default but the pic flag
# sets the default TLS model and affects inlining.
PICFLAG=-fPIC
;;
mips-sgi-irix6*)
# PIC is the default.
;;
rs6000-ibm-aix* | powerpc-ibm-aix*)
# All AIX code is PIC.
;;
# Some targets support both -fPIC and -fpic, but prefer the latter.
# FIXME: Why?
i[34567]86-*-* | x86_64-*-*)
PICFLAG=-fpic
;;
m68k-*-*)
PICFLAG=-fpic
;;
s390*-*-*)
PICFLAG=-fpic
;;
# FIXME: Override -fPIC default in libgcc only?
sh-*-linux* | sh[2346lbe]*-*-linux*)
PICFLAG=-fpic
;;
# FIXME: Simplify to sh*-*-netbsd*?
sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
sh64-*-netbsd* | sh64l*-*-netbsd*)
PICFLAG=-fpic
;;
# Default to -fPIC unless specified otherwise.
*)
PICFLAG=-fPIC
;;
esac
# If the user explicitly uses -fpic/-fPIC, keep that.
case "${CFLAGS}" in
*-fpic*)
PICFLAG=-fpic
;;
*-fPIC*)
PICFLAG=-fPIC
;;
esac
# If they didn't specify --enable-shared, don't generate shared libs. # If they didn't specify --enable-shared, don't generate shared libs.
case "${enable_shared}" in case "${enable_shared}" in
yes) shared=yes ;; yes) shared=yes ;;
...@@ -4847,27 +4927,8 @@ case "${enable_shared}" in ...@@ -4847,27 +4927,8 @@ case "${enable_shared}" in
"") shared=no ;; "") shared=no ;;
*) shared=yes ;; *) shared=yes ;;
esac esac
if [ "${shared}" = "yes" ]; then if [ "${shared}" != "yes" ]; then
case "${host}" in PICFLAG=
*-*-cygwin*) ;;
alpha*-*-linux*) PICFLAG=-fPIC ;;
arm*-*-*) PICFLAG=-fPIC ;;
hppa*-*-*) PICFLAG=-fPIC ;;
i370-*-*) PICFLAG=-fPIC ;;
ia64-*-*) PICFLAG=-fpic ;;
i[34567]86-*-* | x86_64-*-*)
PICFLAG=-fpic ;;
m68k-*-*) PICFLAG=-fpic ;;
mips*-*-linux*) PICFLAG=-fPIC ;;
powerpc*-*-aix*) ;;
powerpc*-*-*) PICFLAG=-fPIC ;;
sparc*-*-*) case "${CFLAGS}" in
*-fpic* ) PICFLAG=-fpic ;;
* ) PICFLAG=-fPIC ;;
esac ;;
s390*-*-*) PICFLAG=-fpic ;;
sh*-*-*) PICFLAG=-fPIC ;;
esac
fi fi
......
...@@ -191,6 +191,8 @@ if [[ -n "${frag}" ]]; then ...@@ -191,6 +191,8 @@ if [[ -n "${frag}" ]]; then
frag=${libiberty_topdir}/libiberty/config/$frag frag=${libiberty_topdir}/libiberty/config/$frag
fi fi
GCC_PICFLAG
# If they didn't specify --enable-shared, don't generate shared libs. # If they didn't specify --enable-shared, don't generate shared libs.
case "${enable_shared}" in case "${enable_shared}" in
yes) shared=yes ;; yes) shared=yes ;;
...@@ -198,27 +200,8 @@ case "${enable_shared}" in ...@@ -198,27 +200,8 @@ case "${enable_shared}" in
"") shared=no ;; "") shared=no ;;
*) shared=yes ;; *) shared=yes ;;
esac esac
if [[ "${shared}" = "yes" ]]; then if [[ "${shared}" != "yes" ]]; then
case "${host}" in PICFLAG=
*-*-cygwin*) ;;
alpha*-*-linux*) PICFLAG=-fPIC ;;
arm*-*-*) PICFLAG=-fPIC ;;
hppa*-*-*) PICFLAG=-fPIC ;;
i370-*-*) PICFLAG=-fPIC ;;
ia64-*-*) PICFLAG=-fpic ;;
i[[34567]]86-*-* | x86_64-*-*)
PICFLAG=-fpic ;;
m68k-*-*) PICFLAG=-fpic ;;
mips*-*-linux*) PICFLAG=-fPIC ;;
powerpc*-*-aix*) ;;
powerpc*-*-*) PICFLAG=-fPIC ;;
sparc*-*-*) case "${CFLAGS}" in
*-fpic* ) PICFLAG=-fpic ;;
* ) PICFLAG=-fPIC ;;
esac ;;
s390*-*-*) PICFLAG=-fpic ;;
sh*-*-*) PICFLAG=-fPIC ;;
esac
fi fi
AC_SUBST(PICFLAG) AC_SUBST(PICFLAG)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment