diff mbox

package/gcc (arc): backport PR56780 patches

Message ID 1431380716-5176-1-git-send-email-romain.naour@openwide.fr
State Accepted
Commit 0268c3cbf2273eabcf045be535018698e3458199
Headers show

Commit Message

Romain Naour May 11, 2015, 9:45 p.m. UTC
--disable-install-libiberty configure option is broken
in gcc 4.8.x, so libiberty.a is always installed in HOST_DIR.

This library broke the host-gdb build due to a fpic/fPIC issue.

Note: host-binutils-arc-2014.12 install libiberty.a in HOST_DIR
but it was overwritten by the gcc one. The host-binutils's
libiberty.a also broke the host-gdb build. This should be
fixed in a followup patch.

Signed-off-by: Romain Naour <romain.naour@openwide.fr>
Cc: Alexey Brodkin <abrodkin@synopsys.com>
---
Alexey, --disable-install-libiberty doesn't work
for host-binutils-arc-2014.12. Can you have a look ?
Thanks
---
 package/gcc/arc-2014.12/851-PR-other-56780.patch | 244 +++++++++++++++++++++++
 1 file changed, 244 insertions(+)
 create mode 100644 package/gcc/arc-2014.12/851-PR-other-56780.patch

Comments

Peter Korsgaard May 11, 2015, 10:19 p.m. UTC | #1
>>>>> "Romain" == Romain Naour <romain.naour@openwide.fr> writes:

 > --disable-install-libiberty configure option is broken
 > in gcc 4.8.x, so libiberty.a is always installed in HOST_DIR.

 > This library broke the host-gdb build due to a fpic/fPIC issue.

 > Note: host-binutils-arc-2014.12 install libiberty.a in HOST_DIR
 > but it was overwritten by the gcc one. The host-binutils's
 > libiberty.a also broke the host-gdb build. This should be
 > fixed in a followup patch.

 > Signed-off-by: Romain Naour <romain.naour@openwide.fr>
 > Cc: Alexey Brodkin <abrodkin@synopsys.com>
 > ---
 > Alexey, --disable-install-libiberty doesn't work
 > for host-binutils-arc-2014.12. Can you have a look ?
 > Thanks

Committed, thanks.
Alexey Brodkin May 13, 2015, 8:48 p.m. UTC | #2
Hi Romain,

On Mon, 2015-05-11 at 23:45 +0200, Romain Naour wrote:
> --disable-install-libiberty configure option is broken
> in gcc 4.8.x, so libiberty.a is always installed in HOST_DIR.
> 
> This library broke the host-gdb build due to a fpic/fPIC issue.
> 
> Note: host-binutils-arc-2014.12 install libiberty.a in HOST_DIR
> but it was overwritten by the gcc one. The host-binutils's
> libiberty.a also broke the host-gdb build. This should be
> fixed in a followup patch.
> 
> Signed-off-by: Romain Naour <romain.naour@openwide.fr>
> Cc: Alexey Brodkin <abrodkin@synopsys.com>
> ---
> Alexey, --disable-install-libiberty doesn't work
> for host-binutils-arc-2014.12. Can you have a look ?
> Thanks

Indeed our binutils are still based on 2.23 branch and corresponding
patches were missing.

What I did I just copied your "851-PR-other-56780.patch" to
"package/binutils/arc-2014.12" folder and on host-binutils rebuild no
libiberty.a was put in "host/usr/lib64".

Care to send another patch that adds "851-PR-other-56780.patch" to
"package/binutils/arc-2014.12" or should I do it myself?

-Alexey
Romain Naour May 13, 2015, 9:18 p.m. UTC | #3
Hi Alexey,

Le 13/05/2015 22:48, Alexey Brodkin a écrit :
> Hi Romain,
> 
> On Mon, 2015-05-11 at 23:45 +0200, Romain Naour wrote:
>> --disable-install-libiberty configure option is broken
>> in gcc 4.8.x, so libiberty.a is always installed in HOST_DIR.
>>
>> This library broke the host-gdb build due to a fpic/fPIC issue.
>>
>> Note: host-binutils-arc-2014.12 install libiberty.a in HOST_DIR
>> but it was overwritten by the gcc one. The host-binutils's
>> libiberty.a also broke the host-gdb build. This should be
>> fixed in a followup patch.
>>
>> Signed-off-by: Romain Naour <romain.naour@openwide.fr>
>> Cc: Alexey Brodkin <abrodkin@synopsys.com>
>> ---
>> Alexey, --disable-install-libiberty doesn't work
>> for host-binutils-arc-2014.12. Can you have a look ?
>> Thanks
> 
> Indeed our binutils are still based on 2.23 branch and corresponding
> patches were missing.
> 
> What I did I just copied your "851-PR-other-56780.patch" to
> "package/binutils/arc-2014.12" folder and on host-binutils rebuild no
> libiberty.a was put in "host/usr/lib64".
> 
> Care to send another patch that adds "851-PR-other-56780.patch" to
> "package/binutils/arc-2014.12" or should I do it myself?

Thank you for your reply.
I just looked at it this evening, and figured out that was the same issue.
I'll sent a patch rebased on arc-2014.11 tag to apply cleanly.

Best regards,
Romain
> 
> -Alexey
>
Alexey Brodkin May 13, 2015, 9:19 p.m. UTC | #4
Hi Romain,

On Wed, 2015-05-13 at 23:18 +0200, Romain Naour wrote:
> Hi Alexey,
> 
> Le 13/05/2015 22:48, Alexey Brodkin a écrit :
> > Hi Romain,
> > 
> > On Mon, 2015-05-11 at 23:45 +0200, Romain Naour wrote:
> >> --disable-install-libiberty configure option is broken
> >> in gcc 4.8.x, so libiberty.a is always installed in HOST_DIR.
> >>
> >> This library broke the host-gdb build due to a fpic/fPIC issue.
> >>
> >> Note: host-binutils-arc-2014.12 install libiberty.a in HOST_DIR
> >> but it was overwritten by the gcc one. The host-binutils's
> >> libiberty.a also broke the host-gdb build. This should be
> >> fixed in a followup patch.
> >>
> >> Signed-off-by: Romain Naour <romain.naour@openwide.fr>
> >> Cc: Alexey Brodkin <abrodkin@synopsys.com>
> >> ---
> >> Alexey, --disable-install-libiberty doesn't work
> >> for host-binutils-arc-2014.12. Can you have a look ?
> >> Thanks
> > 
> > Indeed our binutils are still based on 2.23 branch and corresponding
> > patches were missing.
> > 
> > What I did I just copied your "851-PR-other-56780.patch" to
> > "package/binutils/arc-2014.12" folder and on host-binutils rebuild no
> > libiberty.a was put in "host/usr/lib64".
> > 
> > Care to send another patch that adds "851-PR-other-56780.patch" to
> > "package/binutils/arc-2014.12" or should I do it myself?
> 
> Thank you for your reply.
> I just looked at it this evening, and figured out that was the same issue.
> I'll sent a patch rebased on arc-2014.11 tag to apply cleanly.

Thanks for doing this.

-Alexey
diff mbox

Patch

diff --git a/package/gcc/arc-2014.12/851-PR-other-56780.patch b/package/gcc/arc-2014.12/851-PR-other-56780.patch
new file mode 100644
index 0000000..feb4339
--- /dev/null
+++ b/package/gcc/arc-2014.12/851-PR-other-56780.patch
@@ -0,0 +1,244 @@ 
+From afe990251bd9b3a063f03da31a3b8d139d033bc3 Mon Sep 17 00:00:00 2001
+From: ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Sat, 1 Jun 2013 00:20:49 +0000
+Subject: [PATCH] PR other/56780
+
+* libiberty/configure.ac: Move test for --enable-install-libiberty
+outside of the 'with_target_subdir' test so that it actually gets
+run.  Add output messages to show the test result.
+* libiberty/configure: Regenerate.
+* libiberty/Makefile.in (install_to_libdir): Place the
+installation of the libiberty library in the same guard as that
+used for the headers to prevent it being installed unless
+requested via --enable-install-libiberty.
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199570 138bc75d-0d04-0410-961f-82ee72b054a4
+
+libiberty: fix --enable-install-libiberty flag [PR 56780]
+
+Commit 199570 fixed the --disable-install-libiberty behavior, but it also
+added a bug where the enable path never works because the initial clear
+of target_header_dir wasn't deleted.  So we end up initializing properly
+at the top only to reset it at the end all the time.
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206367 138bc75d-0d04-0410-961f-82ee72b054a4
+
+[Romain
+  squash the two upstream commits
+  Remove the ChangeLog]
+Signed-off-by: Romain Naour <romain.naour@openwide.fr>
+---
+ libiberty/Makefile.in  | 24 ++++++++++-----------
+ libiberty/configure    | 57 +++++++++++++++++++++++++++-----------------------
+ libiberty/configure.ac | 47 ++++++++++++++++++++++-------------------
+ 3 files changed, 68 insertions(+), 60 deletions(-)
+
+diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in
+index f6a3ebd..75ff82d 100644
+--- a/libiberty/Makefile.in
++++ b/libiberty/Makefile.in
+@@ -355,19 +355,19 @@ install-strip: install
+ # since it will be passed the multilib flags.
+ MULTIOSDIR = `$(CC) $(CFLAGS) -print-multi-os-directory`
+ install_to_libdir: all
+-	${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR)
+-	$(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n
+-	( cd $(DESTDIR)$(libdir)/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n ;$(RANLIB) $(TARGETLIB)n )
+-	mv -f $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)
+ 	if test -n "${target_header_dir}"; then \
+-	  case "${target_header_dir}" in \
+-	    /*)    thd=${target_header_dir};; \
+-	    *)     thd=${includedir}/${target_header_dir};; \
+-	  esac; \
+-	  ${mkinstalldirs} $(DESTDIR)$${thd}; \
+-	  for h in ${INSTALLED_HEADERS}; do \
+-	    ${INSTALL_DATA} $$h $(DESTDIR)$${thd}; \
+-	  done; \
++		${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR); \
++		$(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n; \
++		( cd $(DESTDIR)$(libdir)/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n ;$(RANLIB) $(TARGETLIB)n ); \
++		mv -f $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB); \
++		case "${target_header_dir}" in \
++		  /*)    thd=${target_header_dir};; \
++		  *)     thd=${includedir}/${target_header_dir};; \
++		esac; \
++		${mkinstalldirs} $(DESTDIR)$${thd}; \
++		for h in ${INSTALLED_HEADERS}; do \
++		  ${INSTALL_DATA} $$h $(DESTDIR)$${thd}; \
++		done; \
+ 	fi
+ 	@$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install
+ 
+diff --git a/libiberty/configure b/libiberty/configure
+index 5367027..4feb95a 100755
+--- a/libiberty/configure
++++ b/libiberty/configure
+@@ -675,8 +675,8 @@ with_cross_host
+ with_newlib
+ enable_maintainer_mode
+ enable_multilib
+-enable_largefile
+ enable_install_libiberty
++enable_largefile
+ '
+       ac_precious_vars='build_alias
+ host_alias
+@@ -1303,8 +1303,8 @@ Optional Features:
+                           enable make rules and dependencies not useful
+                           (and sometimes confusing) to the casual installer
+   --enable-multilib       build many library versions (default)
++  --enable-install-libiberty       Install headers and library for end users
+   --disable-largefile     omit support for large files
+-  --enable-install-libiberty       Install headers for end users
+ 
+ Optional Packages:
+   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+@@ -2784,6 +2784,35 @@ if test $cross_compiling = no && test $multilib = yes \
+    cross_compiling=maybe
+ fi
+ 
++# We may wish to install the target headers somewhere.
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to install libiberty headers and static library" >&5
++$as_echo_n "checking whether to install libiberty headers and static library... " >&6; }
++
++# Check whether --enable-install-libiberty was given.
++if test "${enable_install_libiberty+set}" = set; then :
++  enableval=$enable_install_libiberty; enable_install_libiberty=$enableval
++else
++  enable_install_libiberty=no
++fi
++
++# Option parsed, now set things appropriately.
++case x"$enable_install_libiberty" in
++  xyes|x)
++    target_header_dir=libiberty
++    ;;
++  xno)
++    target_header_dir=
++    ;;
++  *)
++    # This could be sanity-checked in various ways...
++    target_header_dir="${enable_install_libiberty}"
++    ;;
++esac
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_install_libiberty" >&5
++$as_echo "$enable_install_libiberty" >&6; }
++{ $as_echo "$as_me:${as_lineno-$LINENO}: target_header_dir = $target_header_dir" >&5
++$as_echo "$as_me: target_header_dir = $target_header_dir" >&6;}
++
+ 
+ ac_ext=c
+ ac_cpp='$CPP $CPPFLAGS'
+@@ -5476,7 +5505,6 @@ fi
+ 
+ setobjs=
+ CHECK=
+-target_header_dir=
+ if test -n "${with_target_subdir}"; then
+ 
+   # We are being configured as a target library.  AC_REPLACE_FUNCS
+@@ -5759,29 +5787,6 @@ _ACEOF
+ 
+   esac
+ 
+-  # We may wish to install the target headers somewhere.
+-  # Check whether --enable-install-libiberty was given.
+-if test "${enable_install_libiberty+set}" = set; then :
+-  enableval=$enable_install_libiberty; enable_install_libiberty=$enableval
+-else
+-  enable_install_libiberty=no
+-fi
+-
+-  # Option parsed, now set things appropriately.
+-  case x"$enable_install_libiberty" in
+-    xyes|x)
+-      target_header_dir=libiberty
+-      ;;
+-    xno)
+-      target_header_dir=
+-      ;;
+-    *)
+-      # This could be sanity-checked in various ways...
+-      target_header_dir="${enable_install_libiberty}"
+-      ;;
+-  esac
+-
+-
+ else
+ 
+    # Not a target library, so we set things up to run the test suite.
+diff --git a/libiberty/configure.ac b/libiberty/configure.ac
+index c763894..f17e6b6 100644
+--- a/libiberty/configure.ac
++++ b/libiberty/configure.ac
+@@ -128,6 +128,31 @@ if test $cross_compiling = no && test $multilib = yes \
+    cross_compiling=maybe
+ fi
+ 
++# We may wish to install the target headers somewhere.
++AC_MSG_CHECKING([whether to install libiberty headers and static library])
++dnl install-libiberty is disabled by default
++
++AC_ARG_ENABLE(install-libiberty,
++[  --enable-install-libiberty       Install headers and library for end users],
++enable_install_libiberty=$enableval,
++enable_install_libiberty=no)dnl
++
++# Option parsed, now set things appropriately.
++case x"$enable_install_libiberty" in
++  xyes|x)
++    target_header_dir=libiberty
++    ;;
++  xno)   
++    target_header_dir=
++    ;;
++  *) 
++    # This could be sanity-checked in various ways...
++    target_header_dir="${enable_install_libiberty}"
++    ;;
++esac
++AC_MSG_RESULT($enable_install_libiberty)
++AC_MSG_NOTICE([target_header_dir = $target_header_dir])
++
+ GCC_NO_EXECUTABLES
+ AC_PROG_CC
+ AC_SYS_LARGEFILE
+@@ -380,7 +405,6 @@ fi
+ 
+ setobjs=
+ CHECK=
+-target_header_dir=
+ if test -n "${with_target_subdir}"; then
+ 
+   # We are being configured as a target library.  AC_REPLACE_FUNCS
+@@ -492,27 +516,6 @@ if test -n "${with_target_subdir}"; then
+ 
+   esac
+ 
+-  # We may wish to install the target headers somewhere.
+-  AC_ARG_ENABLE(install-libiberty,
+-  [  --enable-install-libiberty       Install headers for end users],
+-  enable_install_libiberty=$enableval,
+-  enable_install_libiberty=no)dnl
+-  
+-  # Option parsed, now set things appropriately.
+-  case x"$enable_install_libiberty" in
+-    xyes|x)
+-      target_header_dir=libiberty
+-      ;;
+-    xno)   
+-      target_header_dir=
+-      ;;
+-    *) 
+-      # This could be sanity-checked in various ways...
+-      target_header_dir="${enable_install_libiberty}"
+-      ;;
+-  esac
+-
+-
+ else
+ 
+    # Not a target library, so we set things up to run the test suite.
+-- 
+1.9.3
+