Patchwork Fix PR56780: --disable-install-libiberty still installs libiberty.a

login
register
mail settings
Submitter Matt Burgess
Date April 3, 2013, 2:03 p.m.
Message ID <1364997809.24016.13.camel@kyoto.localdomain>
Download mbox | patch
Permalink /patch/233490/
State New
Headers show

Comments

Matt Burgess - April 3, 2013, 2:03 p.m.
Hi,

Please find attached a patch that fixes PR56780.  Build tested on
x86_64-linux.  I've also attached it to the bug.

Regards,

Matt Burgess

2013-04-03 Matt Burgess <matthew@linuxfromscratch.org>

	other/PR56780
	* 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.
Matt Burgess - May 13, 2013, 7:21 p.m.
Hi,

Is anyone able to review the below please (original patch attached to
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56780 and first posted at
http://gcc.gnu.org/ml/gcc-patches/2013-04/msg00167.html

Thanks,

Matt.

On Wed, 2013-04-03 at 15:03 +0100, Matt Burgess wrote:
> Hi,
> 
> Please find attached a patch that fixes PR56780.  Build tested on
> x86_64-linux.  I've also attached it to the bug.
> 
> Regards,
> 
> Matt Burgess
> 
> 2013-04-03 Matt Burgess <matthew@linuxfromscratch.org>
> 
> 	other/PR56780
> 	* 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.
Ian Taylor - May 22, 2013, 8:28 p.m.
On Wed, Apr 3, 2013 at 7:03 AM, Matt Burgess
<matthew@linuxfromscratch.org> wrote:
>
> 2013-04-03 Matt Burgess <matthew@linuxfromscratch.org>
>
>         other/PR56780
>         * 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.

Note that in the ChangeLog entry you should not have any blank lines,
and you should not break the lines after the colon.  See the existing
entries and follow their format.

> +[  --enable-install-libiberty       Install headers for end users],

Change this to "Install headers and library for end users" or
something like that.

This is OK with those changes.

Thanks, and sorry for the slow review.

Ian

Patch

Index: libiberty/Makefile.in
===================================================================
--- libiberty/Makefile.in	(revision 197373)
+++ libiberty/Makefile.in	(working copy)
@@ -355,19 +355,19 @@ 
 # 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
 
Index: libiberty/configure.ac
===================================================================
--- libiberty/configure.ac	(revision 197373)
+++ libiberty/configure.ac	(working copy)
@@ -128,6 +128,31 @@ 
    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 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
@@ -492,27 +517,6 @@ 
 
   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.