public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Iain Buclaw <ibuclaw@gdcproject.org>
To: "Joseph S. Myers" <joseph@codesourcery.com>
Cc: gcc-patches <gcc-patches@gcc.gnu.org>,
	fortran@gcc.gnu.org, libstdc++@gcc.gnu.org, 	bkorb@gnu.org,
	Ian Lance Taylor <ian@airs.com>, Jakub Jelinek <jakub@redhat.com>,
	cmtice@google.com, 	simon.marchi@ericsson.com
Subject: Re: Update GCC to autoconf 2.69, automake 1.15.1
Date: Mon, 03 Dec 2018 03:39:00 -0000	[thread overview]
Message-ID: <CABOHX+dxH+3ieVJBz4BbYoubTCLp7wKHg9mMtPsAWFUuL=ncug@mail.gmail.com> (raw)
In-Reply-To: <alpine.DEB.2.21.1810310322420.32487@digraph.polyomino.org.uk>

[-- Attachment #1: Type: text/plain, Size: 988 bytes --]

On Wed, 31 Oct 2018 at 04:26, Joseph Myers <joseph@codesourcery.com> wrote:
>
> This patch (diffs to generated files omitted below) updates GCC to use
> autoconf 2.69 and automake 1.15.1.  (That's not the latest automake
> version, but it's the one used by binutils-gdb, with which consistency
> is desirable, and in any case seems a useful incremental update that
> should make a future update to 1.16.1 easier.)
>

Thanks, sorry it took a while for me to get round to looking.

>
> I think it's best for the relevant maintainers to add subdir-objects
> and do any other associated Makefile.am changes needed.  In some cases
> the paths in the warnings involved ../; I don't know if that adds any
> extra complications to the use of subdir-objects.
>

I did encounter a problem with ../zlib in libphobos (it built all zlib
objects in-tree).  Re-adding target-zlib and using libz_convenience.la
is what I probably should be doing though.  Attaching a draft patch
for that.

-- 
Iain

---

[-- Attachment #2: subdir-objects.patch --]
[-- Type: text/x-patch, Size: 8004 bytes --]

diff --git a/configure.ac b/configure.ac
index b841c9945f0..01048e29c35 100644
--- a/configure.ac
+++ b/configure.ac
@@ -163,7 +163,8 @@ target_libraries="target-libgcc \
 		target-libobjc \
 		target-libada \
 		target-libgo \
-		target-libphobos"
+		target-libphobos \
+		target-zlib"
 
 # these tools are built using the target libraries, and are intended to
 # run only in the target environment
diff --git a/libphobos/configure.ac b/libphobos/configure.ac
index 67eab27e821..ddf30d56aec 100644
--- a/libphobos/configure.ac
+++ b/libphobos/configure.ac
@@ -42,11 +42,12 @@ AC_SUBST(target_alias)
 # no-dependencies: Don't generate automatic dependencies.
 #    (because it breaks when using bootstrap-lean, since some of the
 #    headers are gone at "make install" time).
+# subdir-objects: Build objects in sub-directories.
 # -Wall: Issue all automake warnings.
 # -Wno-portability: Don't warn about constructs supported by GNU make.
 #    (because GCC requires GNU make anyhow).
 #  -Wno-override: Overrides used in testsuite.
-AM_INIT_AUTOMAKE([1.11.1 foreign no-dist no-define no-dependencies -Wall -Wno-portability -Wno-override])
+AM_INIT_AUTOMAKE([1.11.1 foreign no-dist no-define no-dependencies subdir-objects -Wall -Wno-portability -Wno-override])
 
 m4_rename([_AC_ARG_VAR_PRECIOUS],[glibd_PRECIOUS])
 m4_define([_AC_ARG_VAR_PRECIOUS],[])
diff --git a/libphobos/m4/druntime/libraries.m4 b/libphobos/m4/druntime/libraries.m4
index 17f93468b87..7fa36295cb8 100644
--- a/libphobos/m4/druntime/libraries.m4
+++ b/libphobos/m4/druntime/libraries.m4
@@ -45,28 +45,61 @@ AC_DEFUN([DRUNTIME_LIBRARIES_DLOPEN],
 # DRUNTIME_LIBRARIES_ZLIB
 # -----------------------
 # Allow specifying whether to use the system zlib or
-# compiling the zlib included in GCC. Define
-# DRUNTIME_ZLIB_SYSTEM conditional and add zlib to
-# LIBS if necessary.
+# compiling the zlib included in GCC.  Adds substitute
+# for LIBZ or adds zlib to LIBS if necessary.
 AC_DEFUN([DRUNTIME_LIBRARIES_ZLIB],
 [
-  AC_ARG_WITH(target-system-zlib,
-    AS_HELP_STRING([--with-target-system-zlib],
-                   [use installed libz (default: no)]))
-
-  system_zlib=false
-  AS_IF([test "x$with_target_system_zlib" = "xyes"], [
-    AC_CHECK_LIB([z], [deflate], [
-      system_zlib=yes
-    ], [
-      AC_MSG_ERROR([System zlib not found])
-    ])
-  ], [
-    AC_MSG_CHECKING([for zlib])
-    AC_MSG_RESULT([just compiled])
-  ])
+  AC_LANG_PUSH([C])
+  LIBZ=""
+
+  AC_ARG_WITH(system-zlib,
+    AS_HELP_STRING([--with-system-zlib],
+                   [use installed libz (default: no)]),
+              [system_zlib=yes],[system_zlib=no])
+
+  AC_MSG_CHECKING([for system zlib])
+  save_LIBS=$LIBS
+  LIBS="$LIBS -lz"
+  dnl the link test is not good enough for ARM32 multilib detection,
+  dnl first check to link, then to run
+  AC_LINK_IFELSE(
+    [AC_LANG_PROGRAM([#include <zlib.h>],[gzopen("none", "rb")])],
+    [
+      AC_RUN_IFELSE([AC_LANG_SOURCE([[
+        #include <zlib.h>
+        int main() {
+          gzFile file = gzopen("none", "rb");
+          return 0;
+        }
+        ]])],
+        [system_zlib_found=yes],
+        [system_zlib_found=no],
+        dnl no system zlib for cross builds ...
+        [system_zlib_found=no]
+      )
+    ],
+    [system_zlib_found=no])
+  LIBS=$save_LIBS
+
+  if test x$system_zlib = xyes; then
+    if test x$system_zlib_found = xyes; then
+      AC_MSG_RESULT([found])
+    else
+      AC_MSG_RESULT([not found, disabled])
+      system_zlib=no
+    fi
+  else
+    AC_MSG_RESULT([not enabled])
+  fi
 
-  AM_CONDITIONAL([DRUNTIME_ZLIB_SYSTEM], [test "$with_target_system_zlib" = yes])
+  if test x$system_zlib = xyes; then
+    LIBS="$LIBS -lz"
+  else
+    LIBZ=../../zlib/libz_convenience.la
+  fi
+
+  AC_SUBST(LIBZ)
+  AC_LANG_POP([C])
 ])
 
 # DRUNTIME_LIBRARIES_ATOMIC
diff --git a/libphobos/src/Makefile.am b/libphobos/src/Makefile.am
index 3ced3ae21c8..5a9ffbf4306 100644
--- a/libphobos/src/Makefile.am
+++ b/libphobos/src/Makefile.am
@@ -22,9 +22,6 @@ include $(top_srcdir)/d_rules.am
 D_EXTRA_DFLAGS=-nostdinc -I $(srcdir) \
 	-I $(top_srcdir)/libdruntime -I ../libdruntime -I .
 
-# C flags for zlib compilation
-AM_CFLAGS=@DEFS@ -I. -I$(srcdir)/../libdruntime/gcc -I$(top_srcdir)/../zlib
-
 # D flags for compilation
 AM_DFLAGS=$(phobos_compiler_pic_flag)
 
@@ -39,11 +36,6 @@ PHOBOS_TEST_LOBJECTS = $(ALL_PHOBOS_COMPILE_DSOURCES:.d=.t.lo)
 PHOBOS_TEST_OBJECTS = $(ALL_PHOBOS_COMPILE_DSOURCES:.d=.t.o)
 
 # Main library build definitions
-if DRUNTIME_ZLIB_SYSTEM
-    ZLIB_SRC =
-else
-    ZLIB_SRC = $(ZLIB_CSOURCES)
-endif
 check_PROGRAMS =
 if ENABLE_SHARED
     check_LTLIBRARIES = libgphobos_t.la
@@ -55,26 +47,26 @@ endif
 
 toolexeclib_DATA = libgphobos.spec
 toolexeclib_LTLIBRARIES = libgphobos.la
-libgphobos_la_SOURCES = $(ALL_PHOBOS_SOURCES) $(ZLIB_SRC)
+libgphobos_la_SOURCES = $(ALL_PHOBOS_SOURCES)
 libgphobos_la_LIBTOOLFLAGS =
 libgphobos_la_LDFLAGS = -Xcompiler -nophoboslib -version-info $(libtool_VERSION)
-libgphobos_la_LIBADD = ../libdruntime/libgdruntime.la
+libgphobos_la_LIBADD = ../libdruntime/libgdruntime.la $(LIBZ)
 libgphobos_la_DEPENDENCIES = libgphobos.spec
 
 # For static unittest, link objects directly
-unittest_static_SOURCES = ../testsuite/test_runner.d $(ZLIB_SRC)
+unittest_static_SOURCES = ../testsuite/test_runner.d
 unittest_static_LIBTOOLFLAGS =
 unittest_static_LDFLAGS = -Xcompiler -nophoboslib -static-libtool-libs
 unittest_static_LDADD = $(PHOBOS_TEST_OBJECTS) \
-    ../libdruntime/libgdruntime.la
+    ../libdruntime/libgdruntime.la $(LIBZ)
 EXTRA_unittest_static_DEPENDENCIES = $(PHOBOS_TEST_OBJECTS)
 
 # For unittest with dynamic library
-libgphobos_t_la_SOURCES = $(ZLIB_SRC)
+libgphobos_t_la_SOURCES =
 libgphobos_t_la_LIBTOOLFLAGS =
 libgphobos_t_la_LDFLAGS = -Xcompiler -nophoboslib -rpath /foo -shared
 libgphobos_t_la_LIBADD = $(PHOBOS_TEST_LOBJECTS) \
-    ../libdruntime/libgdruntime.la
+    ../libdruntime/libgdruntime.la $(LIBZ)
 EXTRA_libgphobos_t_la_DEPENDENCIES = $(PHOBOS_TEST_LOBJECTS)
 
 # For unittest
@@ -101,16 +93,6 @@ install-data-local:
 	  fi ; \
 	done
 
-# Zlib sources when not using system libz
-ZLIB_CSOURCES=$(top_srcdir)/../zlib/adler32.c $(top_srcdir)/../zlib/compress.c \
-	$(top_srcdir)/../zlib/crc32.c $(top_srcdir)/../zlib/deflate.c \
-	$(top_srcdir)/../zlib/gzclose.c $(top_srcdir)/../zlib/gzlib.c \
-	$(top_srcdir)/../zlib/gzread.c $(top_srcdir)/../zlib/gzwrite.c \
-	$(top_srcdir)/../zlib/infback.c $(top_srcdir)/../zlib/inffast.c \
-	$(top_srcdir)/../zlib/inflate.c $(top_srcdir)/../zlib/inftrees.c \
-	$(top_srcdir)/../zlib/trees.c $(top_srcdir)/../zlib/uncompr.c \
-	$(top_srcdir)/../zlib/zutil.c
-
 # Source file definitions. Boring stuff, auto-generated with
 # https://gist.github.com/jpf91/8744acebc9dcf1e9d1a35cdff20afbb2
 # Can't use wildcards here:
diff --git a/zlib/Makefile.am b/zlib/Makefile.am
index 520f06592d8..29359614baa 100644
--- a/zlib/Makefile.am
+++ b/zlib/Makefile.am
@@ -11,8 +11,8 @@ inflate.h inftrees.c inftrees.h trees.c trees.h uncompr.c zconf.h \
 zconf.h.in zlib.h zutil.c zutil.h
 
 if TARGET_LIBRARY
-noinst_LTLIBRARIES = libzgcj_convenience.la
-libzgcj_convenience_la_SOURCES = $(ZLIB_SOURCES)
+noinst_LTLIBRARIES = libz_convenience.la
+libz_convenience_la_SOURCES = $(ZLIB_SOURCES)
 else
 toolexeclib_LIBRARIES = libz.a
 libz_a_SOURCES = $(ZLIB_SOURCES)
diff --git a/zlib/configure.ac b/zlib/configure.ac
index e9ebd64f2e7..69588f8c250 100644
--- a/zlib/configure.ac
+++ b/zlib/configure.ac
@@ -74,22 +74,11 @@ if test -n "$with_cross_host"; then
    # we'll have.
    AC_DEFINE(HAVE_MEMCPY)
    AC_DEFINE(HAVE_STRERROR)
-
-   # We ignore --with-system-zlib in this case.
-   target_all=libzgcj.la
 else
    AC_FUNC_MMAP
    AC_CHECK_FUNCS(memcpy strerror)
-
-   if test "$with_system_zlib" = yes; then
-      AC_CHECK_LIB(z, deflate, target_all=, target_all=libzgcj.la)
-   else
-      target_all=libzgcj.la
-   fi
 fi
 
-AC_SUBST(target_all)
-
 AC_CHECK_HEADERS(unistd.h)
 
 if test -n "$with_cross_host" &&

      parent reply	other threads:[~2018-12-03  3:39 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-31  6:35 Joseph Myers
2018-10-31  8:47 ` Thomas Koenig
2018-10-31  9:14   ` Janne Blomqvist
2018-10-31 10:04   ` Richard Biener
2018-10-31 17:34   ` Joseph Myers
2018-10-31 21:55     ` Ian Lance Taylor
2018-11-01 19:43     ` Janne Blomqvist
2023-05-15 19:07     ` Back to requiring "Perl version 5.6.1 (or later)" [PR82856] (was: Update GCC to autoconf 2.69, automake 1.15.1) Thomas Schwinge
2018-10-31 10:09 ` Update GCC to autoconf 2.69, automake 1.15.1 Richard Biener
2018-10-31 14:36 ` Ian Lance Taylor
2018-10-31 14:41 ` Simon Marchi
2018-10-31 17:40   ` Joseph Myers
2018-10-31 17:22 ` Eric Gallager
2018-10-31 18:39   ` Joseph Myers
2018-12-03  3:39 ` Iain Buclaw [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CABOHX+dxH+3ieVJBz4BbYoubTCLp7wKHg9mMtPsAWFUuL=ncug@mail.gmail.com' \
    --to=ibuclaw@gdcproject.org \
    --cc=bkorb@gnu.org \
    --cc=cmtice@google.com \
    --cc=fortran@gcc.gnu.org \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=ian@airs.com \
    --cc=jakub@redhat.com \
    --cc=joseph@codesourcery.com \
    --cc=libstdc++@gcc.gnu.org \
    --cc=simon.marchi@ericsson.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).