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" &&
prev 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).