Non-host system configuration for linker plugins.
* configure.ac (--enable-linker-plugin-configure-flags) (--enable-linker-plugin-flags): New flags. (configdirs): Conditionally add libiberty-linker-plugin. * configure: Regenerate. * Makefile.def (host_modules): Add libiberty-linker-plugin. (host_modules) <lto-plugin>: Pay attention to @extra_linker_plugin_flags@ and @extra_linker_plugin_configure_flags@. (all-lto-plugin): Also depend on all-libiberty-linker-plugin. * Makefile.in: Regenerate. gcc/ * doc/install.texi (--enable-linker-plugin-configure-flags) (--enable-linker-plugin-flags): Document new flags. From-SVN: r211644
This commit is contained in:
parent
b6383ab841
commit
45b3824db6
11
ChangeLog
11
ChangeLog
@ -1,5 +1,16 @@
|
||||
2014-06-13 Thomas Schwinge <thomas@codesourcery.com>
|
||||
|
||||
* configure.ac (--enable-linker-plugin-configure-flags)
|
||||
(--enable-linker-plugin-flags): New flags.
|
||||
(configdirs): Conditionally add libiberty-linker-plugin.
|
||||
* configure: Regenerate.
|
||||
* Makefile.def (host_modules): Add libiberty-linker-plugin.
|
||||
(host_modules) <lto-plugin>: Pay attention to
|
||||
@extra_linker_plugin_flags@ and
|
||||
@extra_linker_plugin_configure_flags@.
|
||||
(all-lto-plugin): Also depend on all-libiberty-linker-plugin.
|
||||
* Makefile.in: Regenerate.
|
||||
|
||||
* Makefile.tpl (configure-[+prefix+][+module+])
|
||||
(configure-stage[+id+]-[+prefix+][+module+]): If specified, use
|
||||
"module_srcdir" instead of "module" for locating a module's srcdir.
|
||||
|
14
Makefile.def
14
Makefile.def
@ -85,6 +85,14 @@ host_modules= { module= libdecnumber; bootstrap=true; };
|
||||
host_modules= { module= libgui; };
|
||||
host_modules= { module= libiberty; bootstrap=true;
|
||||
extra_configure_flags='@extra_host_libiberty_configure_flags@';};
|
||||
// Linker plugins may need their own build of libiberty; see
|
||||
// gcc/doc/install.texi. We take care that this build of libiberty doesn't get
|
||||
// installed. It's a helper library for linker plugins, so we pay attention to
|
||||
// @extra_linker_plugin_flags@ and @extra_linker_plugin_configure_flags@.
|
||||
host_modules= { module= libiberty-linker-plugin; bootstrap=true;
|
||||
module_srcdir=libiberty;
|
||||
extra_configure_flags='@extra_host_libiberty_configure_flags@ --disable-install-libiberty @extra_linker_plugin_flags@ @extra_linker_plugin_configure_flags@';
|
||||
extra_make_flags='@extra_linker_plugin_flags@'; };
|
||||
// We abuse missing to avoid installing anything for libiconv.
|
||||
host_modules= { module= libiconv;
|
||||
extra_configure_flags='--disable-shared';
|
||||
@ -111,7 +119,8 @@ host_modules= { module= libtermcap; no_check=true;
|
||||
host_modules= { module= utils; no_check=true; };
|
||||
host_modules= { module= gnattools; };
|
||||
host_modules= { module= lto-plugin; bootstrap=true;
|
||||
extra_configure_flags=--enable-shared; };
|
||||
extra_configure_flags='--enable-shared @extra_linker_plugin_flags@ @extra_linker_plugin_configure_flags@';
|
||||
extra_make_flags='@extra_linker_plugin_flags@'; };
|
||||
|
||||
target_modules = { module= libstdc++-v3;
|
||||
bootstrap=true;
|
||||
@ -338,7 +347,10 @@ dependencies = { module=all-fixincludes; on=all-libiberty; };
|
||||
dependencies = { module=all-gnattools; on=all-target-libada; };
|
||||
dependencies = { module=all-gnattools; on=all-target-libstdc++-v3; };
|
||||
|
||||
// Depending on the specific configuration, the LTO plugin will either use the
|
||||
// generic libiberty build or the specific build for linker plugins.
|
||||
dependencies = { module=all-lto-plugin; on=all-libiberty; };
|
||||
dependencies = { module=all-lto-plugin; on=all-libiberty-linker-plugin; };
|
||||
|
||||
dependencies = { module=all-utils; on=all-libiberty; };
|
||||
|
||||
|
1051
Makefile.in
1051
Makefile.in
File diff suppressed because it is too large
Load Diff
42
configure
vendored
42
configure
vendored
@ -644,6 +644,8 @@ DEBUG_PREFIX_CFLAGS_FOR_TARGET
|
||||
SYSROOT_CFLAGS_FOR_TARGET
|
||||
stage1_languages
|
||||
extra_host_libiberty_configure_flags
|
||||
extra_linker_plugin_flags
|
||||
extra_linker_plugin_configure_flags
|
||||
clooginc
|
||||
clooglibs
|
||||
islinc
|
||||
@ -778,6 +780,8 @@ with_cloog_include
|
||||
with_cloog_lib
|
||||
enable_cloog_version_check
|
||||
enable_lto
|
||||
enable_linker_plugin_configure_flags
|
||||
enable_linker_plugin_flags
|
||||
enable_stage1_languages
|
||||
enable_objc_gc
|
||||
with_build_sysroot
|
||||
@ -1477,6 +1481,12 @@ Optional Features:
|
||||
--disable-cloog-version-check
|
||||
disable check for CLooG version
|
||||
--enable-lto enable link time optimization support
|
||||
--enable-linker-plugin-configure-flags=FLAGS
|
||||
additional flags for configuring linker plugins
|
||||
[none]
|
||||
--enable-linker-plugin-flags=FLAGS
|
||||
additional flags for configuring and building linker
|
||||
plugins [none]
|
||||
--enable-stage1-languages[=all]
|
||||
choose additional languages to build during stage1.
|
||||
Mostly useful for compiler development
|
||||
@ -6302,6 +6312,23 @@ else
|
||||
fi
|
||||
|
||||
|
||||
# Check whether --enable-linker-plugin-configure-flags was given.
|
||||
if test "${enable_linker_plugin_configure_flags+set}" = set; then :
|
||||
enableval=$enable_linker_plugin_configure_flags; extra_linker_plugin_configure_flags=$enableval
|
||||
else
|
||||
extra_linker_plugin_configure_flags=
|
||||
fi
|
||||
|
||||
|
||||
# Check whether --enable-linker-plugin-flags was given.
|
||||
if test "${enable_linker_plugin_flags+set}" = set; then :
|
||||
enableval=$enable_linker_plugin_flags; extra_linker_plugin_flags=$enableval
|
||||
else
|
||||
extra_linker_plugin_flags=
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
# By default, C and C++ are the only stage 1 languages.
|
||||
stage1_languages=,c,
|
||||
@ -6712,6 +6739,21 @@ for i in ${target_configdirs_all} ; do
|
||||
fi
|
||||
done
|
||||
|
||||
# libiberty-linker-plugin is special: it doesn't have its own source directory,
|
||||
# so we have to add it after the preceding checks.
|
||||
if test x"$extra_linker_plugin_flags$extra_linker_plugin_configure_flags" != x
|
||||
then
|
||||
case " $configdirs " in
|
||||
*" libiberty "*)
|
||||
# If we can build libiberty, we can also build libiberty-linker-plugin.
|
||||
configdirs="$configdirs libiberty-linker-plugin"
|
||||
extra_linker_plugin_configure_flags="$extra_linker_plugin_configure_flags \
|
||||
--with-libiberty=../libiberty-linker-plugin";;
|
||||
*)
|
||||
as_fn_error "libiberty missing" "$LINENO" 5;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Produce a warning message for the subdirs we can't configure.
|
||||
# This isn't especially interesting in the Cygnus tree, but in the individual
|
||||
# FSF releases, it's important to let people know when their machine isn't
|
||||
|
28
configure.ac
28
configure.ac
@ -1731,6 +1731,19 @@ ACX_ELF_TARGET_IFELSE([# ELF platforms build the lto-plugin always.
|
||||
esac
|
||||
])
|
||||
|
||||
AC_ARG_ENABLE(linker-plugin-configure-flags,
|
||||
[AS_HELP_STRING([[--enable-linker-plugin-configure-flags=FLAGS]],
|
||||
[additional flags for configuring linker plugins @<:@none@:>@])],
|
||||
extra_linker_plugin_configure_flags=$enableval,
|
||||
extra_linker_plugin_configure_flags=)
|
||||
AC_SUBST(extra_linker_plugin_configure_flags)
|
||||
AC_ARG_ENABLE(linker-plugin-flags,
|
||||
[AS_HELP_STRING([[--enable-linker-plugin-flags=FLAGS]],
|
||||
[additional flags for configuring and building linker plugins @<:@none@:>@])],
|
||||
extra_linker_plugin_flags=$enableval,
|
||||
extra_linker_plugin_flags=)
|
||||
AC_SUBST(extra_linker_plugin_flags)
|
||||
|
||||
|
||||
# By default, C and C++ are the only stage 1 languages.
|
||||
stage1_languages=,c,
|
||||
@ -2141,6 +2154,21 @@ for i in ${target_configdirs_all} ; do
|
||||
fi
|
||||
done
|
||||
|
||||
# libiberty-linker-plugin is special: it doesn't have its own source directory,
|
||||
# so we have to add it after the preceding checks.
|
||||
if test x"$extra_linker_plugin_flags$extra_linker_plugin_configure_flags" != x
|
||||
then
|
||||
case " $configdirs " in
|
||||
*" libiberty "*)
|
||||
# If we can build libiberty, we can also build libiberty-linker-plugin.
|
||||
configdirs="$configdirs libiberty-linker-plugin"
|
||||
extra_linker_plugin_configure_flags="$extra_linker_plugin_configure_flags \
|
||||
--with-libiberty=../libiberty-linker-plugin";;
|
||||
*)
|
||||
AC_MSG_ERROR([libiberty missing]);;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Produce a warning message for the subdirs we can't configure.
|
||||
# This isn't especially interesting in the Cygnus tree, but in the individual
|
||||
# FSF releases, it's important to let people know when their machine isn't
|
||||
|
@ -1,3 +1,8 @@
|
||||
2014-06-13 Thomas Schwinge <thomas@codesourcery.com>
|
||||
|
||||
* doc/install.texi (--enable-linker-plugin-configure-flags)
|
||||
(--enable-linker-plugin-flags): Document new flags.
|
||||
|
||||
2014-06-13 Martin Jambor <mjambor@suse.cz>
|
||||
|
||||
PR ipa/61186
|
||||
|
@ -1780,6 +1780,25 @@ GLIBC 2.11 or above, otherwise disabled.
|
||||
Enable support for link-time optimization (LTO). This is enabled by
|
||||
default, and may be disabled using @option{--disable-lto}.
|
||||
|
||||
@item --enable-linker-plugin-configure-flags=FLAGS
|
||||
@itemx --enable-linker-plugin-flags=FLAGS
|
||||
By default, linker plugins (such as the LTO plugin) are built for the
|
||||
host system architecture. For the case that the linker has a
|
||||
different (but run-time compatible) architecture, these flags can be
|
||||
specified to build plugins that are compatible to the linker. For
|
||||
example, if you are building GCC for a 64-bit x86_64
|
||||
(@samp{x86_64-unknown-linux-gnu}) host system, but have a 32-bit x86
|
||||
GNU/Linux (@samp{i686-pc-linux-gnu}) linker executable (which is
|
||||
executable on the former system), you can configure GCC as follows for
|
||||
getting compatible linker plugins:
|
||||
|
||||
@smallexample
|
||||
% @var{srcdir}/configure \
|
||||
--host=x86_64-unknown-linux-gnu \
|
||||
--enable-linker-plugin-configure-flags=--host=i686-pc-linux-gnu \
|
||||
--enable-linker-plugin-flags='CC=gcc\ -m32\ -Wl,-rpath,[...]/i686-pc-linux-gnu/lib'
|
||||
@end smallexample
|
||||
|
||||
@item --with-plugin-ld=@var{pathname}
|
||||
Enable an alternate linker to be used at link-time optimization (LTO)
|
||||
link time when @option{-fuse-linker-plugin} is enabled.
|
||||
|
Loading…
Reference in New Issue
Block a user