diff mbox

PATCH: PR bootstrap/63784: [5 Regression] profiledbootstrap failure with bootstrap-lto

Message ID 20141109164614.GA17351@intel.com
State New
Headers show

Commit Message

H.J. Lu Nov. 9, 2014, 4:46 p.m. UTC
Hi,

r216964 disables bootstrap for libcc1 which exposed 2 things:

1. libcc1 isn't compiled with LTO even when GCC is configured with
"--with-build-config=bootstrap-lto".  It may be intentional since
libcc1 is disabled for bootstrap.
2. -fPIC isn't used to created libcc1.so, which is OK if libcc1 is
compiled with LTO which remembers PIC option.

libiberty is bootstrapped with LTO.  When libcc1 isn't compiled with
LTO, we are creating libcc1.so without -fPIC, which leads to linker
failure when linking with slim-lto libiberty.  This patch from

https://gcc.gnu.org/ml/gcc-patches/2012-09/msg00991.html

adds -fPIC to -shared so that -fPIC is always used to create shared
object.  Tested on Linux/x86-64.  OK for trunk?

Thanks.


H.J.
---
2014-11-09  Markus Trippelsdorf  <markus@trippelsdorf.de>

	PR bootstrap/63784
	* libtool.m4: Add $pic_flag with -shared.

boehm-gc/

2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/63784
	* configure: Regenerated.

gcc/

2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/63784
	* configure: Regenerated.

libatomic/

2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/63784
	* configure: Regenerated.

libbacktrace/

2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/63784
	* configure: Regenerated.

libcc1/

2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/63784
	* configure: Regenerated.

libcilkrts/

2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/63784
	* configure: Regenerated.

libffi/

2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/63784
	* configure: Regenerated.

libgfortran/

2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/63784
	* configure: Regenerated.

libgomp/

2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/63784
	* configure: Regenerated.

libitm/

2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/63784
	* configure: Regenerated.

libjava/

2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/63784
	* configure: Regenerated.

libjava/classpath/

2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/63784
	* configure: Regenerated.

libobjc/

2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/63784
	* configure: Regenerated.

libquadmath/

2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/63784
	* configure: Regenerated.

libsanitizer/

2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/63784
	* configure: Regenerated.

libssp/

2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/63784
	* configure: Regenerated.

libstdc++-v3/

2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/63784
	* configure: Regenerated.

libvtv/

2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/63784
	* configure: Regenerated.

lto-plugin/

2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/63784
	* configure: Regenerated.

Comments

Richard Biener Nov. 10, 2014, 11:50 a.m. UTC | #1
On Sun, Nov 9, 2014 at 5:46 PM, H.J. Lu <hongjiu.lu@intel.com> wrote:
> Hi,
>
> r216964 disables bootstrap for libcc1 which exposed 2 things:
>
> 1. libcc1 isn't compiled with LTO even when GCC is configured with
> "--with-build-config=bootstrap-lto".  It may be intentional since
> libcc1 is disabled for bootstrap.
> 2. -fPIC isn't used to created libcc1.so, which is OK if libcc1 is
> compiled with LTO which remembers PIC option.

Why is this any special to LTO?  If it is then it looks like a LTO
(driver) issue to me?  Why are we linking the pic libibterty into
a non-pic libcc1?

Richard.

> libiberty is bootstrapped with LTO.  When libcc1 isn't compiled with
> LTO, we are creating libcc1.so without -fPIC, which leads to linker
> failure when linking with slim-lto libiberty.  This patch from
>
> https://gcc.gnu.org/ml/gcc-patches/2012-09/msg00991.html
>
> adds -fPIC to -shared so that -fPIC is always used to create shared
> object.  Tested on Linux/x86-64.  OK for trunk?
>
> Thanks.
>
>
> H.J.
> ---
> 2014-11-09  Markus Trippelsdorf  <markus@trippelsdorf.de>
>
>         PR bootstrap/63784
>         * libtool.m4: Add $pic_flag with -shared.
>
> boehm-gc/
>
> 2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
>
>         PR bootstrap/63784
>         * configure: Regenerated.
>
> gcc/
>
> 2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
>
>         PR bootstrap/63784
>         * configure: Regenerated.
>
> libatomic/
>
> 2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
>
>         PR bootstrap/63784
>         * configure: Regenerated.
>
> libbacktrace/
>
> 2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
>
>         PR bootstrap/63784
>         * configure: Regenerated.
>
> libcc1/
>
> 2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
>
>         PR bootstrap/63784
>         * configure: Regenerated.
>
> libcilkrts/
>
> 2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
>
>         PR bootstrap/63784
>         * configure: Regenerated.
>
> libffi/
>
> 2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
>
>         PR bootstrap/63784
>         * configure: Regenerated.
>
> libgfortran/
>
> 2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
>
>         PR bootstrap/63784
>         * configure: Regenerated.
>
> libgomp/
>
> 2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
>
>         PR bootstrap/63784
>         * configure: Regenerated.
>
> libitm/
>
> 2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
>
>         PR bootstrap/63784
>         * configure: Regenerated.
>
> libjava/
>
> 2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
>
>         PR bootstrap/63784
>         * configure: Regenerated.
>
> libjava/classpath/
>
> 2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
>
>         PR bootstrap/63784
>         * configure: Regenerated.
>
> libobjc/
>
> 2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
>
>         PR bootstrap/63784
>         * configure: Regenerated.
>
> libquadmath/
>
> 2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
>
>         PR bootstrap/63784
>         * configure: Regenerated.
>
> libsanitizer/
>
> 2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
>
>         PR bootstrap/63784
>         * configure: Regenerated.
>
> libssp/
>
> 2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
>
>         PR bootstrap/63784
>         * configure: Regenerated.
>
> libstdc++-v3/
>
> 2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
>
>         PR bootstrap/63784
>         * configure: Regenerated.
>
> libvtv/
>
> 2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
>
>         PR bootstrap/63784
>         * configure: Regenerated.
>
> lto-plugin/
>
> 2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
>
>         PR bootstrap/63784
>         * configure: Regenerated.
>
> diff --git a/ChangeLog b/ChangeLog
> index 5c7f649..25bc026 100644
> --- a/ChangeLog
> +++ b/ChangeLog
> @@ -1,3 +1,8 @@
> +2014-11-09  Markus Trippelsdorf  <markus@trippelsdorf.de>
> +
> +       PR bootstrap/63784
> +       * libtool.m4: Add $pic_flag with -shared.
> +
>  2014-10-31  Jakub Jelinek  <jakub@redhat.com>
>
>         * Makefile.def (libcc1): Remove bootstrap=true;.
> diff --git a/boehm-gc/ChangeLog b/boehm-gc/ChangeLog
> index 1c8cbda..7a2750f 100644
> --- a/boehm-gc/ChangeLog
> +++ b/boehm-gc/ChangeLog
> @@ -1,3 +1,8 @@
> +2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
> +
> +       PR bootstrap/63784
> +       * configure: Regenerated.
> +
>  2014-10-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
>
>         * include/gc.h [(sparc || __sparc) && sun] (GC_INIT): Remove
> diff --git a/boehm-gc/configure b/boehm-gc/configure
> index 025003c..efaf7b8 100755
> --- a/boehm-gc/configure
> +++ b/boehm-gc/configure
> @@ -9081,7 +9081,7 @@ _LT_EOF
>        if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
>          && test "$tmp_diet" = no
>        then
> -       tmp_addflag=
> +       tmp_addflag=' $pic_flag'
>         tmp_sharedflag='-shared'
>         case $cc_basename,$host_cpu in
>          pgcc*)                         # Portland Group C compiler
> @@ -12019,8 +12019,8 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
>        # Check if GNU C++ uses GNU ld as the underlying linker, since the
>        # archiving commands below assume that GNU ld is being used.
>        if test "$with_gnu_ld" = yes; then
> -        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
> -        archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
> +        archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
> +        archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
>
>          hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
>          export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
> diff --git a/gcc/ChangeLog b/gcc/ChangeLog
> index 5ffc217..74da721 100644
> --- a/gcc/ChangeLog
> +++ b/gcc/ChangeLog
> @@ -1,3 +1,8 @@
> +2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
> +
> +       PR bootstrap/63784
> +       * configure: Regenerated.
> +
>  2014-10-31  Jakub Jelinek  <jakub@redhat.com>
>
>         PR sanitizer/63697
> diff --git a/gcc/configure b/gcc/configure
> index 4022332..3cfbd08 100755
> --- a/gcc/configure
> +++ b/gcc/configure
> @@ -15848,7 +15848,7 @@ _LT_EOF
>        if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
>          && test "$tmp_diet" = no
>        then
> -       tmp_addflag=
> +       tmp_addflag=' $pic_flag'
>         tmp_sharedflag='-shared'
>         case $cc_basename,$host_cpu in
>          pgcc*)                         # Portland Group C compiler
> @@ -18759,8 +18759,8 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
>        # Check if GNU C++ uses GNU ld as the underlying linker, since the
>        # archiving commands below assume that GNU ld is being used.
>        if test "$with_gnu_ld" = yes; then
> -        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
> -        archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
> +        archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
> +        archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
>
>          hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
>          export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
> diff --git a/libatomic/ChangeLog b/libatomic/ChangeLog
> index 4470736..c87e3ba 100644
> --- a/libatomic/ChangeLog
> +++ b/libatomic/ChangeLog
> @@ -1,3 +1,8 @@
> +2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
> +
> +       PR bootstrap/63784
> +       * configure: Regenerated.
> +
>  2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
>
>         * configure.tgt: Add cygwin to supported targets.
> diff --git a/libatomic/configure b/libatomic/configure
> index 4b22172..995b411 100755
> --- a/libatomic/configure
> +++ b/libatomic/configure
> @@ -8901,7 +8901,7 @@ _LT_EOF
>        if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
>          && test "$tmp_diet" = no
>        then
> -       tmp_addflag=
> +       tmp_addflag=' $pic_flag'
>         tmp_sharedflag='-shared'
>         case $cc_basename,$host_cpu in
>          pgcc*)                         # Portland Group C compiler
> diff --git a/libbacktrace/ChangeLog b/libbacktrace/ChangeLog
> index 8cc54be..4dab30b 100644
> --- a/libbacktrace/ChangeLog
> +++ b/libbacktrace/ChangeLog
> @@ -1,3 +1,8 @@
> +2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
> +
> +       PR bootstrap/63784
> +       * configure: Regenerated.
> +
>  2014-10-23  Ian Lance Taylor  <iant@google.com>
>
>         * internal.h (backtrace_atomic_load_pointer) [no atomic or sync]:
> diff --git a/libbacktrace/configure b/libbacktrace/configure
> index f4f9d05..038be30 100755
> --- a/libbacktrace/configure
> +++ b/libbacktrace/configure
> @@ -8879,7 +8879,7 @@ _LT_EOF
>        if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
>          && test "$tmp_diet" = no
>        then
> -       tmp_addflag=
> +       tmp_addflag=' $pic_flag'
>         tmp_sharedflag='-shared'
>         case $cc_basename,$host_cpu in
>          pgcc*)                         # Portland Group C compiler
> diff --git a/libcc1/ChangeLog b/libcc1/ChangeLog
> index 431b288..8821bed 100644
> --- a/libcc1/ChangeLog
> +++ b/libcc1/ChangeLog
> @@ -1,3 +1,8 @@
> +2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
> +
> +       PR bootstrap/63784
> +       * configure: Regenerated.
> +
>  2014-10-29  Jakub Jelinek  <jakub@redhat.com>
>             Phil Muldoon  <pmuldoon@redhat.com>
>
> diff --git a/libcc1/configure b/libcc1/configure
> index 0c203a2..ec56ca9 100755
> --- a/libcc1/configure
> +++ b/libcc1/configure
> @@ -8326,7 +8326,7 @@ _LT_EOF
>        if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
>          && test "$tmp_diet" = no
>        then
> -       tmp_addflag=
> +       tmp_addflag=' $pic_flag'
>         tmp_sharedflag='-shared'
>         case $cc_basename,$host_cpu in
>          pgcc*)                         # Portland Group C compiler
> @@ -11642,8 +11642,8 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
>        # Check if GNU C++ uses GNU ld as the underlying linker, since the
>        # archiving commands below assume that GNU ld is being used.
>        if test "$with_gnu_ld" = yes; then
> -        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
> -        archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
> +        archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
> +        archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
>
>          hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
>          export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
> diff --git a/libcilkrts/ChangeLog b/libcilkrts/ChangeLog
> index ab10a0b..6f0cdb1 100644
> --- a/libcilkrts/ChangeLog
> +++ b/libcilkrts/ChangeLog
> @@ -1,3 +1,8 @@
> +2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
> +
> +       PR bootstrap/63784
> +       * configure: Regenerated.
> +
>  2014-08-01  Alexander Ivchenko  <alexander.ivchenko@intel.com>
>
>         * configure.ac: Move pthread affinity test to the place where
> diff --git a/libcilkrts/configure b/libcilkrts/configure
> index 1e8eabd..a1ba391 100644
> --- a/libcilkrts/configure
> +++ b/libcilkrts/configure
> @@ -8849,7 +8849,7 @@ _LT_EOF
>        if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
>          && test "$tmp_diet" = no
>        then
> -       tmp_addflag=
> +       tmp_addflag=' $pic_flag'
>         tmp_sharedflag='-shared'
>         case $cc_basename,$host_cpu in
>          pgcc*)                         # Portland Group C compiler
> @@ -11760,8 +11760,8 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
>        # Check if GNU C++ uses GNU ld as the underlying linker, since the
>        # archiving commands below assume that GNU ld is being used.
>        if test "$with_gnu_ld" = yes; then
> -        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
> -        archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
> +        archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
> +        archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
>
>          hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
>          export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
> diff --git a/libffi/ChangeLog b/libffi/ChangeLog
> index ed7f555..78fa557 100644
> --- a/libffi/ChangeLog
> +++ b/libffi/ChangeLog
> @@ -1,3 +1,8 @@
> +2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
> +
> +       PR bootstrap/63784
> +       * configure: Regenerated.
> +
>  2014-10-15  Ian Lance Taylor  <iant@google.com>
>
>         * configure.ac: If the compiler supports -Qunused-arguments, use
> diff --git a/libffi/configure b/libffi/configure
> index 4c53cf9..96270d4 100755
> --- a/libffi/configure
> +++ b/libffi/configure
> @@ -8697,7 +8697,7 @@ _LT_EOF
>        if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
>          && test "$tmp_diet" = no
>        then
> -       tmp_addflag=
> +       tmp_addflag=' $pic_flag'
>         tmp_sharedflag='-shared'
>         case $cc_basename,$host_cpu in
>          pgcc*)                         # Portland Group C compiler
> diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
> index e226002..a5d8b90 100644
> --- a/libgfortran/ChangeLog
> +++ b/libgfortran/ChangeLog
> @@ -1,3 +1,8 @@
> +2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
> +
> +       PR bootstrap/63784
> +       * configure: Regenerated.
> +
>  2014-10-20  Janne Blomqvist  <jb@gcc.gnu.org>
>
>         PR libfortran/63589
> diff --git a/libgfortran/configure b/libgfortran/configure
> index df17829..25ae318 100755
> --- a/libgfortran/configure
> +++ b/libgfortran/configure
> @@ -10113,7 +10113,7 @@ _LT_EOF
>        if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
>          && test "$tmp_diet" = no
>        then
> -       tmp_addflag=
> +       tmp_addflag=' $pic_flag'
>         tmp_sharedflag='-shared'
>         case $cc_basename,$host_cpu in
>          pgcc*)                         # Portland Group C compiler
> @@ -13962,7 +13962,7 @@ _LT_EOF
>        if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
>          && test "$tmp_diet" = no
>        then
> -       tmp_addflag=
> +       tmp_addflag=' $pic_flag'
>         tmp_sharedflag='-shared'
>         case $cc_basename,$host_cpu in
>          pgcc*)                         # Portland Group C compiler
> diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog
> index 661653e..f9ac646 100644
> --- a/libgomp/ChangeLog
> +++ b/libgomp/ChangeLog
> @@ -1,3 +1,8 @@
> +2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
> +
> +       PR bootstrap/63784
> +       * configure: Regenerated.
> +
>  2014-10-06  Marek Polacek  <polacek@redhat.com>
>
>         * testsuite/libgomp.c/affinity-1.c: Include <sys/wait.h>.
> diff --git a/libgomp/configure b/libgomp/configure
> index 766eb09..61a6838 100755
> --- a/libgomp/configure
> +++ b/libgomp/configure
> @@ -8884,7 +8884,7 @@ _LT_EOF
>        if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
>          && test "$tmp_diet" = no
>        then
> -       tmp_addflag=
> +       tmp_addflag=' $pic_flag'
>         tmp_sharedflag='-shared'
>         case $cc_basename,$host_cpu in
>          pgcc*)                         # Portland Group C compiler
> @@ -12744,7 +12744,7 @@ _LT_EOF
>        if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
>          && test "$tmp_diet" = no
>        then
> -       tmp_addflag=
> +       tmp_addflag=' $pic_flag'
>         tmp_sharedflag='-shared'
>         case $cc_basename,$host_cpu in
>          pgcc*)                         # Portland Group C compiler
> diff --git a/libitm/ChangeLog b/libitm/ChangeLog
> index f35a630..39d77fb 100644
> --- a/libitm/ChangeLog
> +++ b/libitm/ChangeLog
> @@ -1,3 +1,8 @@
> +2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
> +
> +       PR bootstrap/63784
> +       * configure: Regenerated.
> +
>  2014-10-06  Marek Polacek  <polacek@redhat.com>
>
>         * testsuite/libitm.c/memcpy-1.c: Declare getpagesize.
> diff --git a/libitm/configure b/libitm/configure
> index ce6d50a..d09e260 100644
> --- a/libitm/configure
> +++ b/libitm/configure
> @@ -9575,7 +9575,7 @@ _LT_EOF
>        if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
>          && test "$tmp_diet" = no
>        then
> -       tmp_addflag=
> +       tmp_addflag=' $pic_flag'
>         tmp_sharedflag='-shared'
>         case $cc_basename,$host_cpu in
>          pgcc*)                         # Portland Group C compiler
> @@ -12486,8 +12486,8 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
>        # Check if GNU C++ uses GNU ld as the underlying linker, since the
>        # archiving commands below assume that GNU ld is being used.
>        if test "$with_gnu_ld" = yes; then
> -        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
> -        archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
> +        archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
> +        archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
>
>          hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
>          export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
> diff --git a/libjava/ChangeLog b/libjava/ChangeLog
> index fea4b31..a0ca782 100644
> --- a/libjava/ChangeLog
> +++ b/libjava/ChangeLog
> @@ -1,3 +1,8 @@
> +2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
> +
> +       PR bootstrap/63784
> +       * configure: Regenerated.
> +
>  2014-05-20  Sebastian Huber  <sebastian.huber@embedded-brains.de>
>
>         * testsuite/lib/libjava.exp (load_gcc_lib): Register loaded libs.
> diff --git a/libjava/classpath/ChangeLog b/libjava/classpath/ChangeLog
> index 4389fc0..c19fcef 100644
> --- a/libjava/classpath/ChangeLog
> +++ b/libjava/classpath/ChangeLog
> @@ -1,3 +1,8 @@
> +2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
> +
> +       PR bootstrap/63784
> +       * configure: Regenerated.
> +
>  2014-05-13  Bernd Edlinger  <bernd.edlinger@hotmail.de>
>
>         Fix current cygwin-64 build problems.
> diff --git a/libjava/classpath/configure b/libjava/classpath/configure
> index bcb5bff..eaebd2d 100755
> --- a/libjava/classpath/configure
> +++ b/libjava/classpath/configure
> @@ -9642,7 +9642,7 @@ _LT_EOF
>        if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
>          && test "$tmp_diet" = no
>        then
> -       tmp_addflag=
> +       tmp_addflag=' $pic_flag'
>         tmp_sharedflag='-shared'
>         case $cc_basename,$host_cpu in
>          pgcc*)                         # Portland Group C compiler
> @@ -13956,8 +13956,8 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
>        # Check if GNU C++ uses GNU ld as the underlying linker, since the
>        # archiving commands below assume that GNU ld is being used.
>        if test "$with_gnu_ld" = yes; then
> -        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
> -        archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
> +        archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
> +        archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
>
>          hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
>          export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
> diff --git a/libjava/configure b/libjava/configure
> index afbc996..c9ccbc2 100755
> --- a/libjava/configure
> +++ b/libjava/configure
> @@ -11151,7 +11151,7 @@ _LT_EOF
>        if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
>          && test "$tmp_diet" = no
>        then
> -       tmp_addflag=
> +       tmp_addflag=' $pic_flag'
>         tmp_sharedflag='-shared'
>         case $cc_basename,$host_cpu in
>          pgcc*)                         # Portland Group C compiler
> @@ -14089,8 +14089,8 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
>        # Check if GNU C++ uses GNU ld as the underlying linker, since the
>        # archiving commands below assume that GNU ld is being used.
>        if test "$with_gnu_ld" = yes; then
> -        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
> -        archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
> +        archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
> +        archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
>
>          hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
>          export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
> @@ -18113,7 +18113,7 @@ _LT_EOF
>        if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
>          && test "$tmp_diet" = no
>        then
> -       tmp_addflag=
> +       tmp_addflag=' $pic_flag'
>         tmp_sharedflag='-shared'
>         case $cc_basename,$host_cpu in
>          pgcc*)                         # Portland Group C compiler
> diff --git a/libobjc/ChangeLog b/libobjc/ChangeLog
> index 6559fcc..070be38 100644
> --- a/libobjc/ChangeLog
> +++ b/libobjc/ChangeLog
> @@ -1,3 +1,8 @@
> +2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
> +
> +       PR bootstrap/63784
> +       * configure: Regenerated.
> +
>  2014-07-27  Alan Modra  <amodra@gmail.com>
>             Matthias Klose  <doko@ubuntu.com>
>
> diff --git a/libobjc/configure b/libobjc/configure
> index dd39d7e..dbe8816 100755
> --- a/libobjc/configure
> +++ b/libobjc/configure
> @@ -8364,7 +8364,7 @@ _LT_EOF
>        if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
>          && test "$tmp_diet" = no
>        then
> -       tmp_addflag=
> +       tmp_addflag=' $pic_flag'
>         tmp_sharedflag='-shared'
>         case $cc_basename,$host_cpu in
>          pgcc*)                         # Portland Group C compiler
> diff --git a/libquadmath/ChangeLog b/libquadmath/ChangeLog
> index f2b96bc..3119879 100644
> --- a/libquadmath/ChangeLog
> +++ b/libquadmath/ChangeLog
> @@ -1,3 +1,8 @@
> +2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
> +
> +       PR bootstrap/63784
> +       * configure: Regenerated.
> +
>  2014-10-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
>
>         PR libquadmath/55821
> diff --git a/libquadmath/configure b/libquadmath/configure
> index 907e0cf..d9cc88b 100755
> --- a/libquadmath/configure
> +++ b/libquadmath/configure
> @@ -8290,7 +8290,7 @@ _LT_EOF
>        if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
>          && test "$tmp_diet" = no
>        then
> -       tmp_addflag=
> +       tmp_addflag=' $pic_flag'
>         tmp_sharedflag='-shared'
>         case $cc_basename,$host_cpu in
>          pgcc*)                         # Portland Group C compiler
> diff --git a/libsanitizer/ChangeLog b/libsanitizer/ChangeLog
> index ac08daf..c96fe07 100644
> --- a/libsanitizer/ChangeLog
> +++ b/libsanitizer/ChangeLog
> @@ -1,3 +1,8 @@
> +2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
> +
> +       PR bootstrap/63784
> +       * configure: Regenerated.
> +
>  2014-10-16  Martin Liska  <mliska@suse.cz>
>
>         * asan/Makefile.am: IPA ICF pass is disabled.
> diff --git a/libsanitizer/configure b/libsanitizer/configure
> index 5e4840f..998f05b 100755
> --- a/libsanitizer/configure
> +++ b/libsanitizer/configure
> @@ -9809,7 +9809,7 @@ _LT_EOF
>        if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
>          && test "$tmp_diet" = no
>        then
> -       tmp_addflag=
> +       tmp_addflag=' $pic_flag'
>         tmp_sharedflag='-shared'
>         case $cc_basename,$host_cpu in
>          pgcc*)                         # Portland Group C compiler
> @@ -12720,8 +12720,8 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
>        # Check if GNU C++ uses GNU ld as the underlying linker, since the
>        # archiving commands below assume that GNU ld is being used.
>        if test "$with_gnu_ld" = yes; then
> -        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
> -        archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
> +        archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
> +        archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
>
>          hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
>          export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
> diff --git a/libssp/ChangeLog b/libssp/ChangeLog
> index 6291561..88806e1 100644
> --- a/libssp/ChangeLog
> +++ b/libssp/ChangeLog
> @@ -1,3 +1,8 @@
> +2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
> +
> +       PR bootstrap/63784
> +       * configure: Regenerated.
> +
>  2013-12-07  Jakub Jelinek  <jakub@redhat.com>
>
>         * ssp.c (fail): Avoid -Wformat-security warning.
> diff --git a/libssp/configure b/libssp/configure
> index b26c0b3..4b46ecd 100755
> --- a/libssp/configure
> +++ b/libssp/configure
> @@ -8427,7 +8427,7 @@ _LT_EOF
>        if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
>          && test "$tmp_diet" = no
>        then
> -       tmp_addflag=
> +       tmp_addflag=' $pic_flag'
>         tmp_sharedflag='-shared'
>         case $cc_basename,$host_cpu in
>          pgcc*)                         # Portland Group C compiler
> diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
> index 4e01b10..6ba36d4 100644
> --- a/libstdc++-v3/ChangeLog
> +++ b/libstdc++-v3/ChangeLog
> @@ -1,3 +1,8 @@
> +2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
> +
> +       PR bootstrap/63784
> +       * configure: Regenerated.
> +
>  2014-10-30  David Edelsohn  <dje.gcc@gmail.com>
>
>         * configure.host (aix5+): New stanza.
> diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
> index 3f5fc9a..4e45139 100755
> --- a/libstdc++-v3/configure
> +++ b/libstdc++-v3/configure
> @@ -9294,7 +9294,7 @@ _LT_EOF
>        if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
>          && test "$tmp_diet" = no
>        then
> -       tmp_addflag=
> +       tmp_addflag=' $pic_flag'
>         tmp_sharedflag='-shared'
>         case $cc_basename,$host_cpu in
>          pgcc*)                         # Portland Group C compiler
> @@ -12232,8 +12232,8 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
>        # Check if GNU C++ uses GNU ld as the underlying linker, since the
>        # archiving commands below assume that GNU ld is being used.
>        if test "$with_gnu_ld" = yes; then
> -        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
> -        archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
> +        archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
> +        archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
>
>          hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
>          export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
> diff --git a/libtool.m4 b/libtool.m4
> index 797468f..8bc7cae 100644
> --- a/libtool.m4
> +++ b/libtool.m4
> @@ -4459,7 +4459,7 @@ _LT_EOF
>        if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
>          && test "$tmp_diet" = no
>        then
> -       tmp_addflag=
> +       tmp_addflag=' $pic_flag'
>         tmp_sharedflag='-shared'
>         case $cc_basename,$host_cpu in
>          pgcc*)                         # Portland Group C compiler
> @@ -5525,8 +5525,8 @@ if test "$_lt_caught_CXX_error" != yes; then
>        # Check if GNU C++ uses GNU ld as the underlying linker, since the
>        # archiving commands below assume that GNU ld is being used.
>        if test "$with_gnu_ld" = yes; then
> -        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
> -        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
> +        _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
> +        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
>
>          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
>          _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
> diff --git a/libvtv/ChangeLog b/libvtv/ChangeLog
> index fcbdc10..7e9b553 100644
> --- a/libvtv/ChangeLog
> +++ b/libvtv/ChangeLog
> @@ -1,3 +1,8 @@
> +2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
> +
> +       PR bootstrap/63784
> +       * configure: Regenerated.
> +
>  2013-09-25 Caroline Tice  <cmtice@google.com>
>
>         * Makefile.am: Reinstate ENABLE_VTABLE_VERIFY checks, to make
> diff --git a/libvtv/configure b/libvtv/configure
> index 5a73f26..44203f3 100755
> --- a/libvtv/configure
> +++ b/libvtv/configure
> @@ -9917,7 +9917,7 @@ _LT_EOF
>        if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
>          && test "$tmp_diet" = no
>        then
> -       tmp_addflag=
> +       tmp_addflag=' $pic_flag'
>         tmp_sharedflag='-shared'
>         case $cc_basename,$host_cpu in
>          pgcc*)                         # Portland Group C compiler
> @@ -12127,7 +12127,7 @@ else
>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
>    lt_status=$lt_dlunknown
>    cat > conftest.$ac_ext <<_LT_EOF
> -#line 12099 "configure"
> +#line 12130 "configure"
>  #include "confdefs.h"
>
>  #if HAVE_DLFCN_H
> @@ -12233,7 +12233,7 @@ else
>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
>    lt_status=$lt_dlunknown
>    cat > conftest.$ac_ext <<_LT_EOF
> -#line 12205 "configure"
> +#line 12236 "configure"
>  #include "confdefs.h"
>
>  #if HAVE_DLFCN_H
> @@ -12828,8 +12828,8 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
>        # Check if GNU C++ uses GNU ld as the underlying linker, since the
>        # archiving commands below assume that GNU ld is being used.
>        if test "$with_gnu_ld" = yes; then
> -        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
> -        archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
> +        archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
> +        archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
>
>          hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
>          export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
> diff --git a/lto-plugin/ChangeLog b/lto-plugin/ChangeLog
> index 632c116..3570cf1 100644
> --- a/lto-plugin/ChangeLog
> +++ b/lto-plugin/ChangeLog
> @@ -1,3 +1,8 @@
> +2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
> +
> +       PR bootstrap/63784
> +       * configure: Regenerated.
> +
>  2014-08-26  H.J. Lu  <hongjiu.lu@intel.com>
>
>         PR bootstrap/62260
> diff --git a/lto-plugin/configure b/lto-plugin/configure
> index c34e653..4400b67 100755
> --- a/lto-plugin/configure
> +++ b/lto-plugin/configure
> @@ -8397,7 +8397,7 @@ _LT_EOF
>        if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
>          && test "$tmp_diet" = no
>        then
> -       tmp_addflag=
> +       tmp_addflag=' $pic_flag'
>         tmp_sharedflag='-shared'
>         case $cc_basename,$host_cpu in
>          pgcc*)                         # Portland Group C compiler
> diff --git a/zlib/configure b/zlib/configure
> index 32e33e7..8b37924 100755
> --- a/zlib/configure
> +++ b/zlib/configure
> @@ -8166,7 +8166,7 @@ _LT_EOF
>        if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
>          && test "$tmp_diet" = no
>        then
> -       tmp_addflag=
> +       tmp_addflag=' $pic_flag'
>         tmp_sharedflag='-shared'
>         case $cc_basename,$host_cpu in
>          pgcc*)                         # Portland Group C compiler
Jakub Jelinek Nov. 10, 2014, 12:05 p.m. UTC | #2
On Mon, Nov 10, 2014 at 12:50:44PM +0100, Richard Biener wrote:
> On Sun, Nov 9, 2014 at 5:46 PM, H.J. Lu <hongjiu.lu@intel.com> wrote:
> > Hi,
> >
> > r216964 disables bootstrap for libcc1 which exposed 2 things:
> >
> > 1. libcc1 isn't compiled with LTO even when GCC is configured with
> > "--with-build-config=bootstrap-lto".  It may be intentional since
> > libcc1 is disabled for bootstrap.
> > 2. -fPIC isn't used to created libcc1.so, which is OK if libcc1 is
> > compiled with LTO which remembers PIC option.
> 
> Why is this any special to LTO?  If it is then it looks like a LTO
> (driver) issue to me?  Why are we linking the pic libibterty into
> a non-pic libcc1?

I admit I haven't tried LTO bootstrap, but from normal bootstrap logs,
libcc1 is built normally using libtool using -fPIC only, and linked into
libcc1.so.0.0.0 and libcc1plugin.so.0.0.0, and of course against the
pic/libiberty.a, because we need PIC code in the shared libraries.
So, I don't understand the change at all.

	Jakub
H.J. Lu Nov. 10, 2014, 1:32 p.m. UTC | #3
On Mon, Nov 10, 2014 at 4:05 AM, Jakub Jelinek <jakub@redhat.com> wrote:
> On Mon, Nov 10, 2014 at 12:50:44PM +0100, Richard Biener wrote:
>> On Sun, Nov 9, 2014 at 5:46 PM, H.J. Lu <hongjiu.lu@intel.com> wrote:
>> > Hi,
>> >
>> > r216964 disables bootstrap for libcc1 which exposed 2 things:
>> >
>> > 1. libcc1 isn't compiled with LTO even when GCC is configured with
>> > "--with-build-config=bootstrap-lto".  It may be intentional since
>> > libcc1 is disabled for bootstrap.
>> > 2. -fPIC isn't used to created libcc1.so, which is OK if libcc1 is
>> > compiled with LTO which remembers PIC option.
>>
>> Why is this any special to LTO?  If it is then it looks like a LTO
>> (driver) issue to me?  Why are we linking the pic libibterty into
>> a non-pic libcc1?
>
> I admit I haven't tried LTO bootstrap, but from normal bootstrap logs,
> libcc1 is built normally using libtool using -fPIC only, and linked into
> libcc1.so.0.0.0 and libcc1plugin.so.0.0.0, and of course against the
> pic/libiberty.a, because we need PIC code in the shared libraries.
> So, I don't understand the change at all.
>
>         Jakub

This is the command line to build libcc1.la:

/bin/sh ./libtool --tag=CXX   --mode=link
/export/project/git/gcc-regression-bootstrap/master/216981/bld/./gcc/xg++
-B/export/project/git/gcc-regression-bootstrap/master/216981/bld/./gcc/
-nostdinc++ `if test -f
/export/project/git/gcc-regression-bootstrap/master/216981/bld/x86_64-unknown-linux-gnu/libstdc++-v3/scripts/testsuite_flags;
then /bin/sh /export/project/git/gcc-regression-bootstrap/master/216981/bld/x86_64-unknown-linux-gnu/libstdc++-v3/scripts/testsuite_flags
--build-includes; else echo -funconfigured-libstdc++-v3 ; fi`
-L/export/project/git/gcc-regression-bootstrap/master/216981/bld/x86_64-unknown-linux-gnu/libstdc++-v3/src
-L/export/project/git/gcc-regression-bootstrap/master/216981/bld/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs
-L/export/project/git/gcc-regression-bootstrap/master/216981/bld/x86_64-unknown-linux-gnu/libstdc++-v3/libsupc++/.libs
-B/export/project/git/gcc-regression-bootstrap/master/216981/usr/x86_64-unknown-linux-gnu/bin/
-B/export/project/git/gcc-regression-bootstrap/master/216981/usr/x86_64-unknown-linux-gnu/lib/
-isystem /export/project/git/gcc-regression-bootstrap/master/216981/usr/x86_64-unknown-linux-gnu/include
-isystem /export/project/git/gcc-regression-bootstrap/master/216981/usr/x86_64-unknown-linux-gnu/sys-include
   -W -Wall  -fvisibility=hidden -g -O2 -D_GNU_SOURCE -module
-export-symbols
/export/project/git/gcc-regression/gcc/libcc1/libcc1.sym  -Xcompiler
'-static-libstdc++' -Xcompiler '-static-libgcc' -o libcc1.la -rpath
/export/project/git/gcc-regression-bootstrap/master/216981/usr/lib/../lib64
findcomp.lo libcc1.lo names.lo callbacks.lo connection.lo marshall.lo
-Wc,../libiberty/pic/libiberty.a

There are no -fPIC nor any other options, like -O2.  Since *.lo aren't
compiled with LTO
and libiberty/pic/libiberty.a is compiled with LTO, linker uses
libtool command line to
compile libiberty/pic/libiberty.a  LTO IR into regular object.   Since
libtool command line
doesn't have -fPIC, it fails to create shared object.  Since it
doesn't have -O2, it isn't
optimized and misses other options.

Both ld and gold pull the compiler options from the first .o file with
LTO IR.  We can
argue if linker should pull compiler option from the first LTO IR in
.o and .a.  But it
doesn't happen today and may not be desirable at all.
Jakub Jelinek Nov. 10, 2014, 1:43 p.m. UTC | #4
On Mon, Nov 10, 2014 at 05:32:32AM -0800, H.J. Lu wrote:
> On Mon, Nov 10, 2014 at 4:05 AM, Jakub Jelinek <jakub@redhat.com> wrote:
> > On Mon, Nov 10, 2014 at 12:50:44PM +0100, Richard Biener wrote:
> >> On Sun, Nov 9, 2014 at 5:46 PM, H.J. Lu <hongjiu.lu@intel.com> wrote:
> >> > Hi,
> >> >
> >> > r216964 disables bootstrap for libcc1 which exposed 2 things:
> >> >
> >> > 1. libcc1 isn't compiled with LTO even when GCC is configured with
> >> > "--with-build-config=bootstrap-lto".  It may be intentional since
> >> > libcc1 is disabled for bootstrap.
> >> > 2. -fPIC isn't used to created libcc1.so, which is OK if libcc1 is
> >> > compiled with LTO which remembers PIC option.
> >>
> >> Why is this any special to LTO?  If it is then it looks like a LTO
> >> (driver) issue to me?  Why are we linking the pic libibterty into
> >> a non-pic libcc1?
> >
> > I admit I haven't tried LTO bootstrap, but from normal bootstrap logs,
> > libcc1 is built normally using libtool using -fPIC only, and linked into
> > libcc1.so.0.0.0 and libcc1plugin.so.0.0.0, and of course against the
> > pic/libiberty.a, because we need PIC code in the shared libraries.
> > So, I don't understand the change at all.
> >
> >         Jakub
> 
> This is the command line to build libcc1.la:

Sure, but there was -fPIC used to compile all the *.o files that are being
linked into libcc1.so, so LTO should know that.

	Jakub
Richard Biener Nov. 10, 2014, 1:44 p.m. UTC | #5
On Mon, Nov 10, 2014 at 2:43 PM, Jakub Jelinek <jakub@redhat.com> wrote:
> On Mon, Nov 10, 2014 at 05:32:32AM -0800, H.J. Lu wrote:
>> On Mon, Nov 10, 2014 at 4:05 AM, Jakub Jelinek <jakub@redhat.com> wrote:
>> > On Mon, Nov 10, 2014 at 12:50:44PM +0100, Richard Biener wrote:
>> >> On Sun, Nov 9, 2014 at 5:46 PM, H.J. Lu <hongjiu.lu@intel.com> wrote:
>> >> > Hi,
>> >> >
>> >> > r216964 disables bootstrap for libcc1 which exposed 2 things:
>> >> >
>> >> > 1. libcc1 isn't compiled with LTO even when GCC is configured with
>> >> > "--with-build-config=bootstrap-lto".  It may be intentional since
>> >> > libcc1 is disabled for bootstrap.
>> >> > 2. -fPIC isn't used to created libcc1.so, which is OK if libcc1 is
>> >> > compiled with LTO which remembers PIC option.
>> >>
>> >> Why is this any special to LTO?  If it is then it looks like a LTO
>> >> (driver) issue to me?  Why are we linking the pic libibterty into
>> >> a non-pic libcc1?
>> >
>> > I admit I haven't tried LTO bootstrap, but from normal bootstrap logs,
>> > libcc1 is built normally using libtool using -fPIC only, and linked into
>> > libcc1.so.0.0.0 and libcc1plugin.so.0.0.0, and of course against the
>> > pic/libiberty.a, because we need PIC code in the shared libraries.
>> > So, I don't understand the change at all.
>> >
>> >         Jakub
>>
>> This is the command line to build libcc1.la:
>
> Sure, but there was -fPIC used to compile all the *.o files that are being
> linked into libcc1.so, so LTO should know that.

And it does.  If not please file a bug with a smaller testcase than libcc1
and libiberty.

Richard.

>         Jakub
Jakub Jelinek Nov. 10, 2014, 2:24 p.m. UTC | #6
On Mon, Nov 10, 2014 at 02:44:55PM +0100, Richard Biener wrote:
> >> > I admit I haven't tried LTO bootstrap, but from normal bootstrap logs,
> >> > libcc1 is built normally using libtool using -fPIC only, and linked into
> >> > libcc1.so.0.0.0 and libcc1plugin.so.0.0.0, and of course against the
> >> > pic/libiberty.a, because we need PIC code in the shared libraries.
> >> > So, I don't understand the change at all.
> >> >
> >> >         Jakub
> >>
> >> This is the command line to build libcc1.la:
> >
> > Sure, but there was -fPIC used to compile all the *.o files that are being
> > linked into libcc1.so, so LTO should know that.
> 
> And it does.  If not please file a bug with a smaller testcase than libcc1
> and libiberty.

Ah, supposedly we should add $(POSTSTAGE1_HOST_EXPORTS) after $(HOST_EXPORTS)
to the libcc1 rules iff the libcc1 module is built by the newly built
bootstrapped compiler (but not when the compiler is not bootstrapped and
thus it is built by the host compiler), because if we first bootstrap the
compiler and build libcc1 by stage3, it is really post-stage1 building.

Paolo, any thoughts how to arrange that?

	Jakub
H.J. Lu Nov. 10, 2014, 7:42 p.m. UTC | #7
On Mon, Nov 10, 2014 at 5:44 AM, Richard Biener
<richard.guenther@gmail.com> wrote:
> On Mon, Nov 10, 2014 at 2:43 PM, Jakub Jelinek <jakub@redhat.com> wrote:
>> On Mon, Nov 10, 2014 at 05:32:32AM -0800, H.J. Lu wrote:
>>> On Mon, Nov 10, 2014 at 4:05 AM, Jakub Jelinek <jakub@redhat.com> wrote:
>>> > On Mon, Nov 10, 2014 at 12:50:44PM +0100, Richard Biener wrote:
>>> >> On Sun, Nov 9, 2014 at 5:46 PM, H.J. Lu <hongjiu.lu@intel.com> wrote:
>>> >> > Hi,
>>> >> >
>>> >> > r216964 disables bootstrap for libcc1 which exposed 2 things:
>>> >> >
>>> >> > 1. libcc1 isn't compiled with LTO even when GCC is configured with
>>> >> > "--with-build-config=bootstrap-lto".  It may be intentional since
>>> >> > libcc1 is disabled for bootstrap.
>>> >> > 2. -fPIC isn't used to created libcc1.so, which is OK if libcc1 is
>>> >> > compiled with LTO which remembers PIC option.
>>> >>
>>> >> Why is this any special to LTO?  If it is then it looks like a LTO
>>> >> (driver) issue to me?  Why are we linking the pic libibterty into
>>> >> a non-pic libcc1?
>>> >
>>> > I admit I haven't tried LTO bootstrap, but from normal bootstrap logs,
>>> > libcc1 is built normally using libtool using -fPIC only, and linked into
>>> > libcc1.so.0.0.0 and libcc1plugin.so.0.0.0, and of course against the
>>> > pic/libiberty.a, because we need PIC code in the shared libraries.
>>> > So, I don't understand the change at all.
>>> >
>>> >         Jakub
>>>
>>> This is the command line to build libcc1.la:
>>
>> Sure, but there was -fPIC used to compile all the *.o files that are being
>> linked into libcc1.so, so LTO should know that.
>
> And it does.  If not please file a bug with a smaller testcase than libcc1
> and libiberty.
>

There is nothing wrong with linker.  It is a slm-lto bug in libtool.  I uploaded
a testcase at

https://gcc.gnu.org/bugzilla/attachment.cgi?id=33931
H.J. Lu Nov. 10, 2014, 7:43 p.m. UTC | #8
On Mon, Nov 10, 2014 at 6:24 AM, Jakub Jelinek <jakub@redhat.com> wrote:
> On Mon, Nov 10, 2014 at 02:44:55PM +0100, Richard Biener wrote:
>> >> > I admit I haven't tried LTO bootstrap, but from normal bootstrap logs,
>> >> > libcc1 is built normally using libtool using -fPIC only, and linked into
>> >> > libcc1.so.0.0.0 and libcc1plugin.so.0.0.0, and of course against the
>> >> > pic/libiberty.a, because we need PIC code in the shared libraries.
>> >> > So, I don't understand the change at all.
>> >> >
>> >> >         Jakub
>> >>
>> >> This is the command line to build libcc1.la:
>> >
>> > Sure, but there was -fPIC used to compile all the *.o files that are being
>> > linked into libcc1.so, so LTO should know that.
>>
>> And it does.  If not please file a bug with a smaller testcase than libcc1
>> and libiberty.
>
> Ah, supposedly we should add $(POSTSTAGE1_HOST_EXPORTS) after $(HOST_EXPORTS)
> to the libcc1 rules iff the libcc1 module is built by the newly built
> bootstrapped compiler (but not when the compiler is not bootstrapped and
> thus it is built by the host compiler), because if we first bootstrap the
> compiler and build libcc1 by stage3, it is really post-stage1 building.

It doesn't help. The problem is the missing -fPIC when libtool calls
g+++ to create the shared object.  My patch fixes it.
Markus Trippelsdorf Nov. 10, 2014, 7:57 p.m. UTC | #9
On 2014.11.10 at 11:43 -0800, H.J. Lu wrote:
> On Mon, Nov 10, 2014 at 6:24 AM, Jakub Jelinek <jakub@redhat.com> wrote:
> > On Mon, Nov 10, 2014 at 02:44:55PM +0100, Richard Biener wrote:
> >> >> > I admit I haven't tried LTO bootstrap, but from normal bootstrap logs,
> >> >> > libcc1 is built normally using libtool using -fPIC only, and linked into
> >> >> > libcc1.so.0.0.0 and libcc1plugin.so.0.0.0, and of course against the
> >> >> > pic/libiberty.a, because we need PIC code in the shared libraries.
> >> >> > So, I don't understand the change at all.
> >> >> >
> >> >> >         Jakub
> >> >>
> >> >> This is the command line to build libcc1.la:
> >> >
> >> > Sure, but there was -fPIC used to compile all the *.o files that are being
> >> > linked into libcc1.so, so LTO should know that.
> >>
> >> And it does.  If not please file a bug with a smaller testcase than libcc1
> >> and libiberty.
> >
> > Ah, supposedly we should add $(POSTSTAGE1_HOST_EXPORTS) after $(HOST_EXPORTS)
> > to the libcc1 rules iff the libcc1 module is built by the newly built
> > bootstrapped compiler (but not when the compiler is not bootstrapped and
> > thus it is built by the host compiler), because if we first bootstrap the
> > compiler and build libcc1 by stage3, it is really post-stage1 building.
> 
> It doesn't help. The problem is the missing -fPIC when libtool calls
> g+++ to create the shared object.  My patch fixes it.

But wouldn't it be better to update to a more recent libtool version
instead of adding hack upon hack? 
This would also allow bootstrap-lto without the need of the gcc-ar
(, etc.) wrappers.

And you are one of the very few persons who could handle such an update.
H.J. Lu Nov. 10, 2014, 8:05 p.m. UTC | #10
On Mon, Nov 10, 2014 at 11:57 AM, Markus Trippelsdorf
<markus@trippelsdorf.de> wrote:
> On 2014.11.10 at 11:43 -0800, H.J. Lu wrote:
>> On Mon, Nov 10, 2014 at 6:24 AM, Jakub Jelinek <jakub@redhat.com> wrote:
>> > On Mon, Nov 10, 2014 at 02:44:55PM +0100, Richard Biener wrote:
>> >> >> > I admit I haven't tried LTO bootstrap, but from normal bootstrap logs,
>> >> >> > libcc1 is built normally using libtool using -fPIC only, and linked into
>> >> >> > libcc1.so.0.0.0 and libcc1plugin.so.0.0.0, and of course against the
>> >> >> > pic/libiberty.a, because we need PIC code in the shared libraries.
>> >> >> > So, I don't understand the change at all.
>> >> >> >
>> >> >> >         Jakub
>> >> >>
>> >> >> This is the command line to build libcc1.la:
>> >> >
>> >> > Sure, but there was -fPIC used to compile all the *.o files that are being
>> >> > linked into libcc1.so, so LTO should know that.
>> >>
>> >> And it does.  If not please file a bug with a smaller testcase than libcc1
>> >> and libiberty.
>> >
>> > Ah, supposedly we should add $(POSTSTAGE1_HOST_EXPORTS) after $(HOST_EXPORTS)
>> > to the libcc1 rules iff the libcc1 module is built by the newly built
>> > bootstrapped compiler (but not when the compiler is not bootstrapped and
>> > thus it is built by the host compiler), because if we first bootstrap the
>> > compiler and build libcc1 by stage3, it is really post-stage1 building.
>>
>> It doesn't help. The problem is the missing -fPIC when libtool calls
>> g+++ to create the shared object.  My patch fixes it.
>
> But wouldn't it be better to update to a more recent libtool version
> instead of adding hack upon hack?

Hack is safer than the newer libtool :-(.  A new libtool needs to be
verified on all hosts for all targets.

> This would also allow bootstrap-lto without the need of the gcc-ar
> (, etc.) wrappers.
>
> And you are one of the very few persons who could handle such an update.
>

What did you mean by "you"?
Markus Trippelsdorf Nov. 10, 2014, 8:16 p.m. UTC | #11
On 2014.11.10 at 12:05 -0800, H.J. Lu wrote:
> On Mon, Nov 10, 2014 at 11:57 AM, Markus Trippelsdorf
> <markus@trippelsdorf.de> wrote:
> > On 2014.11.10 at 11:43 -0800, H.J. Lu wrote:
> >> On Mon, Nov 10, 2014 at 6:24 AM, Jakub Jelinek <jakub@redhat.com> wrote:
> >> > On Mon, Nov 10, 2014 at 02:44:55PM +0100, Richard Biener wrote:
> >> >> >> > I admit I haven't tried LTO bootstrap, but from normal bootstrap logs,
> >> >> >> > libcc1 is built normally using libtool using -fPIC only, and linked into
> >> >> >> > libcc1.so.0.0.0 and libcc1plugin.so.0.0.0, and of course against the
> >> >> >> > pic/libiberty.a, because we need PIC code in the shared libraries.
> >> >> >> > So, I don't understand the change at all.
> >> >> >> >
> >> >> >> >         Jakub
> >> >> >>
> >> >> >> This is the command line to build libcc1.la:
> >> >> >
> >> >> > Sure, but there was -fPIC used to compile all the *.o files that are being
> >> >> > linked into libcc1.so, so LTO should know that.
> >> >>
> >> >> And it does.  If not please file a bug with a smaller testcase than libcc1
> >> >> and libiberty.
> >> >
> >> > Ah, supposedly we should add $(POSTSTAGE1_HOST_EXPORTS) after $(HOST_EXPORTS)
> >> > to the libcc1 rules iff the libcc1 module is built by the newly built
> >> > bootstrapped compiler (but not when the compiler is not bootstrapped and
> >> > thus it is built by the host compiler), because if we first bootstrap the
> >> > compiler and build libcc1 by stage3, it is really post-stage1 building.
> >>
> >> It doesn't help. The problem is the missing -fPIC when libtool calls
> >> g+++ to create the shared object.  My patch fixes it.
> >
> > But wouldn't it be better to update to a more recent libtool version
> > instead of adding hack upon hack?
> 
> Hack is safer than the newer libtool :-(.  A new libtool needs to be
> verified on all hosts for all targets.

Well, perhaps now is the right time to do it, because there would be
enough time to fix any fallout.

> > This would also allow bootstrap-lto without the need of the gcc-ar
> > (, etc.) wrappers.
> >
> > And you are one of the very few persons who could handle such an update.
> >
> 
> What did you mean by "you"?

I mean that since Ralf Wildenhues dropped from the scene, you (H.J.) are
one of the few people who could handle a libtool update across the
different trees (gcc, binutils, etc.).
H.J. Lu Nov. 10, 2014, 8:21 p.m. UTC | #12
On Mon, Nov 10, 2014 at 12:16 PM, Markus Trippelsdorf
<markus@trippelsdorf.de> wrote:
> On 2014.11.10 at 12:05 -0800, H.J. Lu wrote:
>> On Mon, Nov 10, 2014 at 11:57 AM, Markus Trippelsdorf
>> <markus@trippelsdorf.de> wrote:
>> > On 2014.11.10 at 11:43 -0800, H.J. Lu wrote:
>> >> On Mon, Nov 10, 2014 at 6:24 AM, Jakub Jelinek <jakub@redhat.com> wrote:
>> >> > On Mon, Nov 10, 2014 at 02:44:55PM +0100, Richard Biener wrote:
>> >> >> >> > I admit I haven't tried LTO bootstrap, but from normal bootstrap logs,
>> >> >> >> > libcc1 is built normally using libtool using -fPIC only, and linked into
>> >> >> >> > libcc1.so.0.0.0 and libcc1plugin.so.0.0.0, and of course against the
>> >> >> >> > pic/libiberty.a, because we need PIC code in the shared libraries.
>> >> >> >> > So, I don't understand the change at all.
>> >> >> >> >
>> >> >> >> >         Jakub
>> >> >> >>
>> >> >> >> This is the command line to build libcc1.la:
>> >> >> >
>> >> >> > Sure, but there was -fPIC used to compile all the *.o files that are being
>> >> >> > linked into libcc1.so, so LTO should know that.
>> >> >>
>> >> >> And it does.  If not please file a bug with a smaller testcase than libcc1
>> >> >> and libiberty.
>> >> >
>> >> > Ah, supposedly we should add $(POSTSTAGE1_HOST_EXPORTS) after $(HOST_EXPORTS)
>> >> > to the libcc1 rules iff the libcc1 module is built by the newly built
>> >> > bootstrapped compiler (but not when the compiler is not bootstrapped and
>> >> > thus it is built by the host compiler), because if we first bootstrap the
>> >> > compiler and build libcc1 by stage3, it is really post-stage1 building.
>> >>
>> >> It doesn't help. The problem is the missing -fPIC when libtool calls
>> >> g+++ to create the shared object.  My patch fixes it.
>> >
>> > But wouldn't it be better to update to a more recent libtool version
>> > instead of adding hack upon hack?
>>
>> Hack is safer than the newer libtool :-(.  A new libtool needs to be
>> verified on all hosts for all targets.
>
> Well, perhaps now is the right time to do it, because there would be
> enough time to fix any fallout.
>
>> > This would also allow bootstrap-lto without the need of the gcc-ar
>> > (, etc.) wrappers.
>> >
>> > And you are one of the very few persons who could handle such an update.
>> >
>>
>> What did you mean by "you"?
>
> I mean that since Ralf Wildenhues dropped from the scene, you (H.J.) are
> one of the few people who could handle a libtool update across the
> different trees (gcc, binutils, etc.).
>

I can handle binutils.  But it takes a LONG time for GCC build changes
to be reviewed.  I try to avoid it as much as I can :-).
H.J. Lu Nov. 11, 2014, 4:02 p.m. UTC | #13
On Mon, Nov 10, 2014 at 11:42 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Mon, Nov 10, 2014 at 5:44 AM, Richard Biener
> <richard.guenther@gmail.com> wrote:
>> On Mon, Nov 10, 2014 at 2:43 PM, Jakub Jelinek <jakub@redhat.com> wrote:
>>> On Mon, Nov 10, 2014 at 05:32:32AM -0800, H.J. Lu wrote:
>>>> On Mon, Nov 10, 2014 at 4:05 AM, Jakub Jelinek <jakub@redhat.com> wrote:
>>>> > On Mon, Nov 10, 2014 at 12:50:44PM +0100, Richard Biener wrote:
>>>> >> On Sun, Nov 9, 2014 at 5:46 PM, H.J. Lu <hongjiu.lu@intel.com> wrote:
>>>> >> > Hi,
>>>> >> >
>>>> >> > r216964 disables bootstrap for libcc1 which exposed 2 things:
>>>> >> >
>>>> >> > 1. libcc1 isn't compiled with LTO even when GCC is configured with
>>>> >> > "--with-build-config=bootstrap-lto".  It may be intentional since
>>>> >> > libcc1 is disabled for bootstrap.
>>>> >> > 2. -fPIC isn't used to created libcc1.so, which is OK if libcc1 is
>>>> >> > compiled with LTO which remembers PIC option.
>>>> >>
>>>> >> Why is this any special to LTO?  If it is then it looks like a LTO
>>>> >> (driver) issue to me?  Why are we linking the pic libibterty into
>>>> >> a non-pic libcc1?
>>>> >
>>>> > I admit I haven't tried LTO bootstrap, but from normal bootstrap logs,
>>>> > libcc1 is built normally using libtool using -fPIC only, and linked into
>>>> > libcc1.so.0.0.0 and libcc1plugin.so.0.0.0, and of course against the
>>>> > pic/libiberty.a, because we need PIC code in the shared libraries.
>>>> > So, I don't understand the change at all.
>>>> >
>>>> >         Jakub
>>>>
>>>> This is the command line to build libcc1.la:
>>>
>>> Sure, but there was -fPIC used to compile all the *.o files that are being
>>> linked into libcc1.so, so LTO should know that.
>>
>> And it does.  If not please file a bug with a smaller testcase than libcc1
>> and libiberty.
>>
>
> There is nothing wrong with linker.  It is a slm-lto bug in libtool.  I uploaded
> a testcase at
>
> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33931
>

My patch is a backport of libtool LTO support:

commit b81fd4ef009c24a86a7e64727ea09efb410ea149
Author: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Date:   Sun Aug 29 17:31:29 2010 +0200

    Support GCC LTO on GNU/Linux.

    * libltdl/config/ltmain.m4sh (func_mode_link): Allow through
    flags matching -O*, -flto*, -fwhopr, -fuse-linker-plugin.
    * libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Drop symbols
    starting with __gnu_lto.
    (_LT_LINKER_SHLIBS) [linux] <archive_cmds, archive_expsyms_cmds>:
    Add $pic_flag for GCC.
    (_LT_LANG_CXX_CONFIG) [linux] <archive_cmds, archive_expsyms_cmds>:
    Likewise.
    (_LT_SYS_HIDDEN_LIBDEPS): Ignore files matching *.lto.o.
    * NEWS: Update.

    Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>

OK to install?

Thanks.
H.J. Lu Nov. 13, 2014, 11:15 p.m. UTC | #14
On Tue, Nov 11, 2014 at 8:02 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Mon, Nov 10, 2014 at 11:42 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
>> On Mon, Nov 10, 2014 at 5:44 AM, Richard Biener
>> <richard.guenther@gmail.com> wrote:
>>> On Mon, Nov 10, 2014 at 2:43 PM, Jakub Jelinek <jakub@redhat.com> wrote:
>>>> On Mon, Nov 10, 2014 at 05:32:32AM -0800, H.J. Lu wrote:
>>>>> On Mon, Nov 10, 2014 at 4:05 AM, Jakub Jelinek <jakub@redhat.com> wrote:
>>>>> > On Mon, Nov 10, 2014 at 12:50:44PM +0100, Richard Biener wrote:
>>>>> >> On Sun, Nov 9, 2014 at 5:46 PM, H.J. Lu <hongjiu.lu@intel.com> wrote:
>>>>> >> > Hi,
>>>>> >> >
>>>>> >> > r216964 disables bootstrap for libcc1 which exposed 2 things:
>>>>> >> >
>>>>> >> > 1. libcc1 isn't compiled with LTO even when GCC is configured with
>>>>> >> > "--with-build-config=bootstrap-lto".  It may be intentional since
>>>>> >> > libcc1 is disabled for bootstrap.
>>>>> >> > 2. -fPIC isn't used to created libcc1.so, which is OK if libcc1 is
>>>>> >> > compiled with LTO which remembers PIC option.
>>>>> >>
>>>>> >> Why is this any special to LTO?  If it is then it looks like a LTO
>>>>> >> (driver) issue to me?  Why are we linking the pic libibterty into
>>>>> >> a non-pic libcc1?
>>>>> >
>>>>> > I admit I haven't tried LTO bootstrap, but from normal bootstrap logs,
>>>>> > libcc1 is built normally using libtool using -fPIC only, and linked into
>>>>> > libcc1.so.0.0.0 and libcc1plugin.so.0.0.0, and of course against the
>>>>> > pic/libiberty.a, because we need PIC code in the shared libraries.
>>>>> > So, I don't understand the change at all.
>>>>> >
>>>>> >         Jakub
>>>>>
>>>>> This is the command line to build libcc1.la:
>>>>
>>>> Sure, but there was -fPIC used to compile all the *.o files that are being
>>>> linked into libcc1.so, so LTO should know that.
>>>
>>> And it does.  If not please file a bug with a smaller testcase than libcc1
>>> and libiberty.
>>>
>>
>> There is nothing wrong with linker.  It is a slm-lto bug in libtool.  I uploaded
>> a testcase at
>>
>> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33931
>>
>
> My patch is a backport of libtool LTO support:
>
> commit b81fd4ef009c24a86a7e64727ea09efb410ea149
> Author: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
> Date:   Sun Aug 29 17:31:29 2010 +0200
>
>     Support GCC LTO on GNU/Linux.
>
>     * libltdl/config/ltmain.m4sh (func_mode_link): Allow through
>     flags matching -O*, -flto*, -fwhopr, -fuse-linker-plugin.
>     * libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Drop symbols
>     starting with __gnu_lto.
>     (_LT_LINKER_SHLIBS) [linux] <archive_cmds, archive_expsyms_cmds>:
>     Add $pic_flag for GCC.
>     (_LT_LANG_CXX_CONFIG) [linux] <archive_cmds, archive_expsyms_cmds>:
>     Likewise.
>     (_LT_SYS_HIDDEN_LIBDEPS): Ignore files matching *.lto.o.
>     * NEWS: Update.
>
>     Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
>
> OK to install?
>

Ping.

Stage 1 will be closed tomorrow.  I'd like to restore LTO bootstrap.
Richard Biener Nov. 14, 2014, 10:19 a.m. UTC | #15
On Fri, Nov 14, 2014 at 12:15 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Tue, Nov 11, 2014 at 8:02 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
>> On Mon, Nov 10, 2014 at 11:42 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
>>> On Mon, Nov 10, 2014 at 5:44 AM, Richard Biener
>>> <richard.guenther@gmail.com> wrote:
>>>> On Mon, Nov 10, 2014 at 2:43 PM, Jakub Jelinek <jakub@redhat.com> wrote:
>>>>> On Mon, Nov 10, 2014 at 05:32:32AM -0800, H.J. Lu wrote:
>>>>>> On Mon, Nov 10, 2014 at 4:05 AM, Jakub Jelinek <jakub@redhat.com> wrote:
>>>>>> > On Mon, Nov 10, 2014 at 12:50:44PM +0100, Richard Biener wrote:
>>>>>> >> On Sun, Nov 9, 2014 at 5:46 PM, H.J. Lu <hongjiu.lu@intel.com> wrote:
>>>>>> >> > Hi,
>>>>>> >> >
>>>>>> >> > r216964 disables bootstrap for libcc1 which exposed 2 things:
>>>>>> >> >
>>>>>> >> > 1. libcc1 isn't compiled with LTO even when GCC is configured with
>>>>>> >> > "--with-build-config=bootstrap-lto".  It may be intentional since
>>>>>> >> > libcc1 is disabled for bootstrap.
>>>>>> >> > 2. -fPIC isn't used to created libcc1.so, which is OK if libcc1 is
>>>>>> >> > compiled with LTO which remembers PIC option.
>>>>>> >>
>>>>>> >> Why is this any special to LTO?  If it is then it looks like a LTO
>>>>>> >> (driver) issue to me?  Why are we linking the pic libibterty into
>>>>>> >> a non-pic libcc1?
>>>>>> >
>>>>>> > I admit I haven't tried LTO bootstrap, but from normal bootstrap logs,
>>>>>> > libcc1 is built normally using libtool using -fPIC only, and linked into
>>>>>> > libcc1.so.0.0.0 and libcc1plugin.so.0.0.0, and of course against the
>>>>>> > pic/libiberty.a, because we need PIC code in the shared libraries.
>>>>>> > So, I don't understand the change at all.
>>>>>> >
>>>>>> >         Jakub
>>>>>>
>>>>>> This is the command line to build libcc1.la:
>>>>>
>>>>> Sure, but there was -fPIC used to compile all the *.o files that are being
>>>>> linked into libcc1.so, so LTO should know that.
>>>>
>>>> And it does.  If not please file a bug with a smaller testcase than libcc1
>>>> and libiberty.
>>>>
>>>
>>> There is nothing wrong with linker.  It is a slm-lto bug in libtool.  I uploaded
>>> a testcase at
>>>
>>> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33931
>>>
>>
>> My patch is a backport of libtool LTO support:
>>
>> commit b81fd4ef009c24a86a7e64727ea09efb410ea149
>> Author: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
>> Date:   Sun Aug 29 17:31:29 2010 +0200
>>
>>     Support GCC LTO on GNU/Linux.
>>
>>     * libltdl/config/ltmain.m4sh (func_mode_link): Allow through
>>     flags matching -O*, -flto*, -fwhopr, -fuse-linker-plugin.
>>     * libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Drop symbols
>>     starting with __gnu_lto.
>>     (_LT_LINKER_SHLIBS) [linux] <archive_cmds, archive_expsyms_cmds>:
>>     Add $pic_flag for GCC.
>>     (_LT_LANG_CXX_CONFIG) [linux] <archive_cmds, archive_expsyms_cmds>:
>>     Likewise.
>>     (_LT_SYS_HIDDEN_LIBDEPS): Ignore files matching *.lto.o.
>>     * NEWS: Update.
>>
>>     Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
>>
>> OK to install?
>>
>
> Ping.
>
> Stage 1 will be closed tomorrow.  I'd like to restore LTO bootstrap.

Bugfixing is still possible after that date.  I suppose you don't call
LTO bootstrap a new feature ;)

Richard.

>
> --
> H.J.
H.J. Lu Nov. 18, 2014, 4:04 p.m. UTC | #16
On Fri, Nov 14, 2014 at 2:19 AM, Richard Biener
<richard.guenther@gmail.com> wrote:
> On Fri, Nov 14, 2014 at 12:15 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
>> On Tue, Nov 11, 2014 at 8:02 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
>>> On Mon, Nov 10, 2014 at 11:42 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
>>>> On Mon, Nov 10, 2014 at 5:44 AM, Richard Biener
>>>> <richard.guenther@gmail.com> wrote:
>>>>> On Mon, Nov 10, 2014 at 2:43 PM, Jakub Jelinek <jakub@redhat.com> wrote:
>>>>>> On Mon, Nov 10, 2014 at 05:32:32AM -0800, H.J. Lu wrote:
>>>>>>> On Mon, Nov 10, 2014 at 4:05 AM, Jakub Jelinek <jakub@redhat.com> wrote:
>>>>>>> > On Mon, Nov 10, 2014 at 12:50:44PM +0100, Richard Biener wrote:
>>>>>>> >> On Sun, Nov 9, 2014 at 5:46 PM, H.J. Lu <hongjiu.lu@intel.com> wrote:
>>>>>>> >> > Hi,
>>>>>>> >> >
>>>>>>> >> > r216964 disables bootstrap for libcc1 which exposed 2 things:
>>>>>>> >> >
>>>>>>> >> > 1. libcc1 isn't compiled with LTO even when GCC is configured with
>>>>>>> >> > "--with-build-config=bootstrap-lto".  It may be intentional since
>>>>>>> >> > libcc1 is disabled for bootstrap.
>>>>>>> >> > 2. -fPIC isn't used to created libcc1.so, which is OK if libcc1 is
>>>>>>> >> > compiled with LTO which remembers PIC option.
>>>>>>> >>
>>>>>>> >> Why is this any special to LTO?  If it is then it looks like a LTO
>>>>>>> >> (driver) issue to me?  Why are we linking the pic libibterty into
>>>>>>> >> a non-pic libcc1?
>>>>>>> >
>>>>>>> > I admit I haven't tried LTO bootstrap, but from normal bootstrap logs,
>>>>>>> > libcc1 is built normally using libtool using -fPIC only, and linked into
>>>>>>> > libcc1.so.0.0.0 and libcc1plugin.so.0.0.0, and of course against the
>>>>>>> > pic/libiberty.a, because we need PIC code in the shared libraries.
>>>>>>> > So, I don't understand the change at all.
>>>>>>> >
>>>>>>> >         Jakub
>>>>>>>
>>>>>>> This is the command line to build libcc1.la:
>>>>>>
>>>>>> Sure, but there was -fPIC used to compile all the *.o files that are being
>>>>>> linked into libcc1.so, so LTO should know that.
>>>>>
>>>>> And it does.  If not please file a bug with a smaller testcase than libcc1
>>>>> and libiberty.
>>>>>
>>>>
>>>> There is nothing wrong with linker.  It is a slm-lto bug in libtool.  I uploaded
>>>> a testcase at
>>>>
>>>> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33931
>>>>
>>>
>>> My patch is a backport of libtool LTO support:
>>>
>>> commit b81fd4ef009c24a86a7e64727ea09efb410ea149
>>> Author: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
>>> Date:   Sun Aug 29 17:31:29 2010 +0200
>>>
>>>     Support GCC LTO on GNU/Linux.
>>>
>>>     * libltdl/config/ltmain.m4sh (func_mode_link): Allow through
>>>     flags matching -O*, -flto*, -fwhopr, -fuse-linker-plugin.
>>>     * libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Drop symbols
>>>     starting with __gnu_lto.
>>>     (_LT_LINKER_SHLIBS) [linux] <archive_cmds, archive_expsyms_cmds>:
>>>     Add $pic_flag for GCC.
>>>     (_LT_LANG_CXX_CONFIG) [linux] <archive_cmds, archive_expsyms_cmds>:
>>>     Likewise.
>>>     (_LT_SYS_HIDDEN_LIBDEPS): Ignore files matching *.lto.o.
>>>     * NEWS: Update.
>>>
>>>     Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
>>>
>>> OK to install?
>>>
>>
>> Ping.
>>
>> Stage 1 will be closed tomorrow.  I'd like to restore LTO bootstrap.
>
> Bugfixing is still possible after that date.  I suppose you don't call
> LTO bootstrap a new feature ;)
>

New LTO bugs have been introduced since LTO bootstrap was broken
a few weeks ago.  I'd like to check in this one so that we have a chance
to prevent further damage.  Any objects to backport this from libtool
upstream?
diff mbox

Patch

diff --git a/ChangeLog b/ChangeLog
index 5c7f649..25bc026 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@ 
+2014-11-09  Markus Trippelsdorf  <markus@trippelsdorf.de>
+
+	PR bootstrap/63784
+	* libtool.m4: Add $pic_flag with -shared.
+
 2014-10-31  Jakub Jelinek  <jakub@redhat.com>
 
 	* Makefile.def (libcc1): Remove bootstrap=true;.
diff --git a/boehm-gc/ChangeLog b/boehm-gc/ChangeLog
index 1c8cbda..7a2750f 100644
--- a/boehm-gc/ChangeLog
+++ b/boehm-gc/ChangeLog
@@ -1,3 +1,8 @@ 
+2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR bootstrap/63784
+	* configure: Regenerated.
+
 2014-10-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
 	* include/gc.h [(sparc || __sparc) && sun] (GC_INIT): Remove
diff --git a/boehm-gc/configure b/boehm-gc/configure
index 025003c..efaf7b8 100755
--- a/boehm-gc/configure
+++ b/boehm-gc/configure
@@ -9081,7 +9081,7 @@  _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
 	 && test "$tmp_diet" = no
       then
-	tmp_addflag=
+	tmp_addflag=' $pic_flag'
 	tmp_sharedflag='-shared'
 	case $cc_basename,$host_cpu in
         pgcc*)				# Portland Group C compiler
@@ -12019,8 +12019,8 @@  with_gnu_ld=$lt_cv_prog_gnu_ld
       # Check if GNU C++ uses GNU ld as the underlying linker, since the
       # archiving commands below assume that GNU ld is being used.
       if test "$with_gnu_ld" = yes; then
-        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+        archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
 
         hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
         export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5ffc217..74da721 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@ 
+2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR bootstrap/63784
+	* configure: Regenerated.
+
 2014-10-31  Jakub Jelinek  <jakub@redhat.com>
 
 	PR sanitizer/63697
diff --git a/gcc/configure b/gcc/configure
index 4022332..3cfbd08 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -15848,7 +15848,7 @@  _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
 	 && test "$tmp_diet" = no
       then
-	tmp_addflag=
+	tmp_addflag=' $pic_flag'
 	tmp_sharedflag='-shared'
 	case $cc_basename,$host_cpu in
         pgcc*)				# Portland Group C compiler
@@ -18759,8 +18759,8 @@  with_gnu_ld=$lt_cv_prog_gnu_ld
       # Check if GNU C++ uses GNU ld as the underlying linker, since the
       # archiving commands below assume that GNU ld is being used.
       if test "$with_gnu_ld" = yes; then
-        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+        archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
 
         hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
         export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
diff --git a/libatomic/ChangeLog b/libatomic/ChangeLog
index 4470736..c87e3ba 100644
--- a/libatomic/ChangeLog
+++ b/libatomic/ChangeLog
@@ -1,3 +1,8 @@ 
+2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR bootstrap/63784
+	* configure: Regenerated.
+
 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
 
 	* configure.tgt: Add cygwin to supported targets.
diff --git a/libatomic/configure b/libatomic/configure
index 4b22172..995b411 100755
--- a/libatomic/configure
+++ b/libatomic/configure
@@ -8901,7 +8901,7 @@  _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
 	 && test "$tmp_diet" = no
       then
-	tmp_addflag=
+	tmp_addflag=' $pic_flag'
 	tmp_sharedflag='-shared'
 	case $cc_basename,$host_cpu in
         pgcc*)				# Portland Group C compiler
diff --git a/libbacktrace/ChangeLog b/libbacktrace/ChangeLog
index 8cc54be..4dab30b 100644
--- a/libbacktrace/ChangeLog
+++ b/libbacktrace/ChangeLog
@@ -1,3 +1,8 @@ 
+2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR bootstrap/63784
+	* configure: Regenerated.
+
 2014-10-23  Ian Lance Taylor  <iant@google.com>
 
 	* internal.h (backtrace_atomic_load_pointer) [no atomic or sync]:
diff --git a/libbacktrace/configure b/libbacktrace/configure
index f4f9d05..038be30 100755
--- a/libbacktrace/configure
+++ b/libbacktrace/configure
@@ -8879,7 +8879,7 @@  _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
 	 && test "$tmp_diet" = no
       then
-	tmp_addflag=
+	tmp_addflag=' $pic_flag'
 	tmp_sharedflag='-shared'
 	case $cc_basename,$host_cpu in
         pgcc*)				# Portland Group C compiler
diff --git a/libcc1/ChangeLog b/libcc1/ChangeLog
index 431b288..8821bed 100644
--- a/libcc1/ChangeLog
+++ b/libcc1/ChangeLog
@@ -1,3 +1,8 @@ 
+2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR bootstrap/63784
+	* configure: Regenerated.
+
 2014-10-29  Jakub Jelinek  <jakub@redhat.com>
 	    Phil Muldoon  <pmuldoon@redhat.com>
 
diff --git a/libcc1/configure b/libcc1/configure
index 0c203a2..ec56ca9 100755
--- a/libcc1/configure
+++ b/libcc1/configure
@@ -8326,7 +8326,7 @@  _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
 	 && test "$tmp_diet" = no
       then
-	tmp_addflag=
+	tmp_addflag=' $pic_flag'
 	tmp_sharedflag='-shared'
 	case $cc_basename,$host_cpu in
         pgcc*)				# Portland Group C compiler
@@ -11642,8 +11642,8 @@  with_gnu_ld=$lt_cv_prog_gnu_ld
       # Check if GNU C++ uses GNU ld as the underlying linker, since the
       # archiving commands below assume that GNU ld is being used.
       if test "$with_gnu_ld" = yes; then
-        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+        archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
 
         hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
         export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
diff --git a/libcilkrts/ChangeLog b/libcilkrts/ChangeLog
index ab10a0b..6f0cdb1 100644
--- a/libcilkrts/ChangeLog
+++ b/libcilkrts/ChangeLog
@@ -1,3 +1,8 @@ 
+2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR bootstrap/63784
+	* configure: Regenerated.
+
 2014-08-01  Alexander Ivchenko  <alexander.ivchenko@intel.com>
 
 	* configure.ac: Move pthread affinity test to the place where
diff --git a/libcilkrts/configure b/libcilkrts/configure
index 1e8eabd..a1ba391 100644
--- a/libcilkrts/configure
+++ b/libcilkrts/configure
@@ -8849,7 +8849,7 @@  _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
 	 && test "$tmp_diet" = no
       then
-	tmp_addflag=
+	tmp_addflag=' $pic_flag'
 	tmp_sharedflag='-shared'
 	case $cc_basename,$host_cpu in
         pgcc*)				# Portland Group C compiler
@@ -11760,8 +11760,8 @@  with_gnu_ld=$lt_cv_prog_gnu_ld
       # Check if GNU C++ uses GNU ld as the underlying linker, since the
       # archiving commands below assume that GNU ld is being used.
       if test "$with_gnu_ld" = yes; then
-        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+        archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
 
         hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
         export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
diff --git a/libffi/ChangeLog b/libffi/ChangeLog
index ed7f555..78fa557 100644
--- a/libffi/ChangeLog
+++ b/libffi/ChangeLog
@@ -1,3 +1,8 @@ 
+2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR bootstrap/63784
+	* configure: Regenerated.
+
 2014-10-15  Ian Lance Taylor  <iant@google.com>
 
 	* configure.ac: If the compiler supports -Qunused-arguments, use
diff --git a/libffi/configure b/libffi/configure
index 4c53cf9..96270d4 100755
--- a/libffi/configure
+++ b/libffi/configure
@@ -8697,7 +8697,7 @@  _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
 	 && test "$tmp_diet" = no
       then
-	tmp_addflag=
+	tmp_addflag=' $pic_flag'
 	tmp_sharedflag='-shared'
 	case $cc_basename,$host_cpu in
         pgcc*)				# Portland Group C compiler
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index e226002..a5d8b90 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,8 @@ 
+2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR bootstrap/63784
+	* configure: Regenerated.
+
 2014-10-20  Janne Blomqvist  <jb@gcc.gnu.org>
 
 	PR libfortran/63589
diff --git a/libgfortran/configure b/libgfortran/configure
index df17829..25ae318 100755
--- a/libgfortran/configure
+++ b/libgfortran/configure
@@ -10113,7 +10113,7 @@  _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
 	 && test "$tmp_diet" = no
       then
-	tmp_addflag=
+	tmp_addflag=' $pic_flag'
 	tmp_sharedflag='-shared'
 	case $cc_basename,$host_cpu in
         pgcc*)				# Portland Group C compiler
@@ -13962,7 +13962,7 @@  _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
 	 && test "$tmp_diet" = no
       then
-	tmp_addflag=
+	tmp_addflag=' $pic_flag'
 	tmp_sharedflag='-shared'
 	case $cc_basename,$host_cpu in
         pgcc*)				# Portland Group C compiler
diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog
index 661653e..f9ac646 100644
--- a/libgomp/ChangeLog
+++ b/libgomp/ChangeLog
@@ -1,3 +1,8 @@ 
+2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR bootstrap/63784
+	* configure: Regenerated.
+
 2014-10-06  Marek Polacek  <polacek@redhat.com>
 
 	* testsuite/libgomp.c/affinity-1.c: Include <sys/wait.h>.
diff --git a/libgomp/configure b/libgomp/configure
index 766eb09..61a6838 100755
--- a/libgomp/configure
+++ b/libgomp/configure
@@ -8884,7 +8884,7 @@  _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
 	 && test "$tmp_diet" = no
       then
-	tmp_addflag=
+	tmp_addflag=' $pic_flag'
 	tmp_sharedflag='-shared'
 	case $cc_basename,$host_cpu in
         pgcc*)				# Portland Group C compiler
@@ -12744,7 +12744,7 @@  _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
 	 && test "$tmp_diet" = no
       then
-	tmp_addflag=
+	tmp_addflag=' $pic_flag'
 	tmp_sharedflag='-shared'
 	case $cc_basename,$host_cpu in
         pgcc*)				# Portland Group C compiler
diff --git a/libitm/ChangeLog b/libitm/ChangeLog
index f35a630..39d77fb 100644
--- a/libitm/ChangeLog
+++ b/libitm/ChangeLog
@@ -1,3 +1,8 @@ 
+2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR bootstrap/63784
+	* configure: Regenerated.
+
 2014-10-06  Marek Polacek  <polacek@redhat.com>
 
 	* testsuite/libitm.c/memcpy-1.c: Declare getpagesize.
diff --git a/libitm/configure b/libitm/configure
index ce6d50a..d09e260 100644
--- a/libitm/configure
+++ b/libitm/configure
@@ -9575,7 +9575,7 @@  _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
 	 && test "$tmp_diet" = no
       then
-	tmp_addflag=
+	tmp_addflag=' $pic_flag'
 	tmp_sharedflag='-shared'
 	case $cc_basename,$host_cpu in
         pgcc*)				# Portland Group C compiler
@@ -12486,8 +12486,8 @@  with_gnu_ld=$lt_cv_prog_gnu_ld
       # Check if GNU C++ uses GNU ld as the underlying linker, since the
       # archiving commands below assume that GNU ld is being used.
       if test "$with_gnu_ld" = yes; then
-        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+        archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
 
         hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
         export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index fea4b31..a0ca782 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,8 @@ 
+2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR bootstrap/63784
+	* configure: Regenerated.
+
 2014-05-20  Sebastian Huber  <sebastian.huber@embedded-brains.de>
 
 	* testsuite/lib/libjava.exp (load_gcc_lib): Register loaded libs.
diff --git a/libjava/classpath/ChangeLog b/libjava/classpath/ChangeLog
index 4389fc0..c19fcef 100644
--- a/libjava/classpath/ChangeLog
+++ b/libjava/classpath/ChangeLog
@@ -1,3 +1,8 @@ 
+2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR bootstrap/63784
+	* configure: Regenerated.
+
 2014-05-13  Bernd Edlinger  <bernd.edlinger@hotmail.de>
 
 	Fix current cygwin-64 build problems.
diff --git a/libjava/classpath/configure b/libjava/classpath/configure
index bcb5bff..eaebd2d 100755
--- a/libjava/classpath/configure
+++ b/libjava/classpath/configure
@@ -9642,7 +9642,7 @@  _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
 	 && test "$tmp_diet" = no
       then
-	tmp_addflag=
+	tmp_addflag=' $pic_flag'
 	tmp_sharedflag='-shared'
 	case $cc_basename,$host_cpu in
         pgcc*)				# Portland Group C compiler
@@ -13956,8 +13956,8 @@  with_gnu_ld=$lt_cv_prog_gnu_ld
       # Check if GNU C++ uses GNU ld as the underlying linker, since the
       # archiving commands below assume that GNU ld is being used.
       if test "$with_gnu_ld" = yes; then
-        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+        archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
 
         hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
         export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
diff --git a/libjava/configure b/libjava/configure
index afbc996..c9ccbc2 100755
--- a/libjava/configure
+++ b/libjava/configure
@@ -11151,7 +11151,7 @@  _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
 	 && test "$tmp_diet" = no
       then
-	tmp_addflag=
+	tmp_addflag=' $pic_flag'
 	tmp_sharedflag='-shared'
 	case $cc_basename,$host_cpu in
         pgcc*)				# Portland Group C compiler
@@ -14089,8 +14089,8 @@  with_gnu_ld=$lt_cv_prog_gnu_ld
       # Check if GNU C++ uses GNU ld as the underlying linker, since the
       # archiving commands below assume that GNU ld is being used.
       if test "$with_gnu_ld" = yes; then
-        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+        archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
 
         hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
         export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
@@ -18113,7 +18113,7 @@  _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
 	 && test "$tmp_diet" = no
       then
-	tmp_addflag=
+	tmp_addflag=' $pic_flag'
 	tmp_sharedflag='-shared'
 	case $cc_basename,$host_cpu in
         pgcc*)				# Portland Group C compiler
diff --git a/libobjc/ChangeLog b/libobjc/ChangeLog
index 6559fcc..070be38 100644
--- a/libobjc/ChangeLog
+++ b/libobjc/ChangeLog
@@ -1,3 +1,8 @@ 
+2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR bootstrap/63784
+	* configure: Regenerated.
+
 2014-07-27  Alan Modra  <amodra@gmail.com>
 	    Matthias Klose  <doko@ubuntu.com>
 
diff --git a/libobjc/configure b/libobjc/configure
index dd39d7e..dbe8816 100755
--- a/libobjc/configure
+++ b/libobjc/configure
@@ -8364,7 +8364,7 @@  _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
 	 && test "$tmp_diet" = no
       then
-	tmp_addflag=
+	tmp_addflag=' $pic_flag'
 	tmp_sharedflag='-shared'
 	case $cc_basename,$host_cpu in
         pgcc*)				# Portland Group C compiler
diff --git a/libquadmath/ChangeLog b/libquadmath/ChangeLog
index f2b96bc..3119879 100644
--- a/libquadmath/ChangeLog
+++ b/libquadmath/ChangeLog
@@ -1,3 +1,8 @@ 
+2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR bootstrap/63784
+	* configure: Regenerated.
+
 2014-10-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
 
 	PR libquadmath/55821
diff --git a/libquadmath/configure b/libquadmath/configure
index 907e0cf..d9cc88b 100755
--- a/libquadmath/configure
+++ b/libquadmath/configure
@@ -8290,7 +8290,7 @@  _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
 	 && test "$tmp_diet" = no
       then
-	tmp_addflag=
+	tmp_addflag=' $pic_flag'
 	tmp_sharedflag='-shared'
 	case $cc_basename,$host_cpu in
         pgcc*)				# Portland Group C compiler
diff --git a/libsanitizer/ChangeLog b/libsanitizer/ChangeLog
index ac08daf..c96fe07 100644
--- a/libsanitizer/ChangeLog
+++ b/libsanitizer/ChangeLog
@@ -1,3 +1,8 @@ 
+2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR bootstrap/63784
+	* configure: Regenerated.
+
 2014-10-16  Martin Liska  <mliska@suse.cz>
 
 	* asan/Makefile.am: IPA ICF pass is disabled.
diff --git a/libsanitizer/configure b/libsanitizer/configure
index 5e4840f..998f05b 100755
--- a/libsanitizer/configure
+++ b/libsanitizer/configure
@@ -9809,7 +9809,7 @@  _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
 	 && test "$tmp_diet" = no
       then
-	tmp_addflag=
+	tmp_addflag=' $pic_flag'
 	tmp_sharedflag='-shared'
 	case $cc_basename,$host_cpu in
         pgcc*)				# Portland Group C compiler
@@ -12720,8 +12720,8 @@  with_gnu_ld=$lt_cv_prog_gnu_ld
       # Check if GNU C++ uses GNU ld as the underlying linker, since the
       # archiving commands below assume that GNU ld is being used.
       if test "$with_gnu_ld" = yes; then
-        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+        archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
 
         hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
         export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
diff --git a/libssp/ChangeLog b/libssp/ChangeLog
index 6291561..88806e1 100644
--- a/libssp/ChangeLog
+++ b/libssp/ChangeLog
@@ -1,3 +1,8 @@ 
+2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR bootstrap/63784
+	* configure: Regenerated.
+
 2013-12-07  Jakub Jelinek  <jakub@redhat.com>
 
 	* ssp.c (fail): Avoid -Wformat-security warning.
diff --git a/libssp/configure b/libssp/configure
index b26c0b3..4b46ecd 100755
--- a/libssp/configure
+++ b/libssp/configure
@@ -8427,7 +8427,7 @@  _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
 	 && test "$tmp_diet" = no
       then
-	tmp_addflag=
+	tmp_addflag=' $pic_flag'
 	tmp_sharedflag='-shared'
 	case $cc_basename,$host_cpu in
         pgcc*)				# Portland Group C compiler
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 4e01b10..6ba36d4 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,8 @@ 
+2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR bootstrap/63784
+	* configure: Regenerated.
+
 2014-10-30  David Edelsohn  <dje.gcc@gmail.com>
 
 	* configure.host (aix5+): New stanza.
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index 3f5fc9a..4e45139 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
@@ -9294,7 +9294,7 @@  _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
 	 && test "$tmp_diet" = no
       then
-	tmp_addflag=
+	tmp_addflag=' $pic_flag'
 	tmp_sharedflag='-shared'
 	case $cc_basename,$host_cpu in
         pgcc*)				# Portland Group C compiler
@@ -12232,8 +12232,8 @@  with_gnu_ld=$lt_cv_prog_gnu_ld
       # Check if GNU C++ uses GNU ld as the underlying linker, since the
       # archiving commands below assume that GNU ld is being used.
       if test "$with_gnu_ld" = yes; then
-        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+        archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
 
         hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
         export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
diff --git a/libtool.m4 b/libtool.m4
index 797468f..8bc7cae 100644
--- a/libtool.m4
+++ b/libtool.m4
@@ -4459,7 +4459,7 @@  _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
 	 && test "$tmp_diet" = no
       then
-	tmp_addflag=
+	tmp_addflag=' $pic_flag'
 	tmp_sharedflag='-shared'
 	case $cc_basename,$host_cpu in
         pgcc*)				# Portland Group C compiler
@@ -5525,8 +5525,8 @@  if test "$_lt_caught_CXX_error" != yes; then
       # Check if GNU C++ uses GNU ld as the underlying linker, since the
       # archiving commands below assume that GNU ld is being used.
       if test "$with_gnu_ld" = yes; then
-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+        _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
 
         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
         _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
diff --git a/libvtv/ChangeLog b/libvtv/ChangeLog
index fcbdc10..7e9b553 100644
--- a/libvtv/ChangeLog
+++ b/libvtv/ChangeLog
@@ -1,3 +1,8 @@ 
+2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR bootstrap/63784
+	* configure: Regenerated.
+
 2013-09-25 Caroline Tice  <cmtice@google.com>
 
 	* Makefile.am: Reinstate ENABLE_VTABLE_VERIFY checks, to make
diff --git a/libvtv/configure b/libvtv/configure
index 5a73f26..44203f3 100755
--- a/libvtv/configure
+++ b/libvtv/configure
@@ -9917,7 +9917,7 @@  _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
 	 && test "$tmp_diet" = no
       then
-	tmp_addflag=
+	tmp_addflag=' $pic_flag'
 	tmp_sharedflag='-shared'
 	case $cc_basename,$host_cpu in
         pgcc*)				# Portland Group C compiler
@@ -12127,7 +12127,7 @@  else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 12099 "configure"
+#line 12130 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -12233,7 +12233,7 @@  else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 12205 "configure"
+#line 12236 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -12828,8 +12828,8 @@  with_gnu_ld=$lt_cv_prog_gnu_ld
       # Check if GNU C++ uses GNU ld as the underlying linker, since the
       # archiving commands below assume that GNU ld is being used.
       if test "$with_gnu_ld" = yes; then
-        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+        archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
 
         hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
         export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
diff --git a/lto-plugin/ChangeLog b/lto-plugin/ChangeLog
index 632c116..3570cf1 100644
--- a/lto-plugin/ChangeLog
+++ b/lto-plugin/ChangeLog
@@ -1,3 +1,8 @@ 
+2014-11-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR bootstrap/63784
+	* configure: Regenerated.
+
 2014-08-26  H.J. Lu  <hongjiu.lu@intel.com>
 
 	PR bootstrap/62260
diff --git a/lto-plugin/configure b/lto-plugin/configure
index c34e653..4400b67 100755
--- a/lto-plugin/configure
+++ b/lto-plugin/configure
@@ -8397,7 +8397,7 @@  _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
 	 && test "$tmp_diet" = no
       then
-	tmp_addflag=
+	tmp_addflag=' $pic_flag'
 	tmp_sharedflag='-shared'
 	case $cc_basename,$host_cpu in
         pgcc*)				# Portland Group C compiler
diff --git a/zlib/configure b/zlib/configure
index 32e33e7..8b37924 100755
--- a/zlib/configure
+++ b/zlib/configure
@@ -8166,7 +8166,7 @@  _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
 	 && test "$tmp_diet" = no
       then
-	tmp_addflag=
+	tmp_addflag=' $pic_flag'
 	tmp_sharedflag='-shared'
 	case $cc_basename,$host_cpu in
         pgcc*)				# Portland Group C compiler