* Use libstdc++-raw-cxx.m4 in libjava
@ 2012-12-11 22:00 H.J. Lu
2012-12-12 8:50 ` Paolo Bonzini
2013-01-02 11:11 ` Jakub Jelinek
0 siblings, 2 replies; 10+ messages in thread
From: H.J. Lu @ 2012-12-11 22:00 UTC (permalink / raw)
To: Paolo Bonzini
Cc: DJ Delorie, neroden, Alexandre Oliva, Ralf Wildenhues, gcc-patches
On Tue, Dec 11, 2012 at 6:36 AM, Paolo Bonzini <bonzini@gnu.org> wrote:
>>>> AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long -fPIC -fno-builtin -fno-exceptions -fomit-frame-pointer -funwind-tables -fvisibility=hidden -Wno-variadic-macros -Wno-c99-extensions
>>>> +## We require libstdc++-v3 to be in the same build tree.
>>>> +AM_CXXFLAGS += -I../../libstdc++-v3/include \
>>>> + -I../../libstdc++-v3/include/$(target_noncanonical) \
>>>> + -I$(srcdir)/../../libstdc++-v3/libsupc++
>
> As a followup, please bring back the possibility to build libsanitizer
> standalone, also wrapping the chooice of flags to link to libstdc++-v3
> in a new config/libstdc++-raw-cxx.m4 file.
>
> Bonus points for using this macro elsewhere in the tree.
>
This patch adds LIBSTDCXX_RAW_CXX_LDFLAGS and use
it in libjava and libsanitizer which set raw_cxx=true. I am testing
it on Linux/x86-64. OK to install if it works?
Thanks.
H.J.
---
cat /tmp/gcc-raw-cxx.patch
config/
2012-12-11 H.J. Lu <hongjiu.lu@intel.com>
* libstdc++-raw-cxx.m4 (GCC_LIBSTDCXX_RAW_CXX_FLAGS): Also
AC_SUBST LIBSTDCXX_RAW_CXX_LDFLAGS.
libjava/
2012-12-11 H.J. Lu <hongjiu.lu@intel.com>
* Makefile.am (lib_gnu_awt_xlib_la_CPPFLAGS): Use
$(LIBSTDCXX_RAW_CXX_CXXLAGS).
(lib_gnu_awt_xlib_la_LDFLAGS): Use $(LIBSTDCXX_RAW_CXX_LDLAGS).
* configure.ac (GCC_LIBSTDCXX_RAW_CXX_FLAGS): New.
* aclocal.m4: Regenerated.
* Makefile.in:Likewise.
* configure: Likewise.
libsanitizer/
2012-12-11 H.J. Lu <hongjiu.lu@intel.com>
* asan/Makefile.am (libasan_la_LIBADD): Use $(LIBSTDCXX_RAW_CXX_LDLAGS).
* tsan/Makefile.am (libtsan_la_LIBADD): Likewise.
* Makefile.in: Regenerated.
* configure: Likewise.
* asan/Makefile.in: Likewise.
* interception/Makefile.in: Likewise.
* sanitizer_common/Makefile.in: Likewise.
* tsan/Makefile.in: Likewise.
diff --git a/config/libstdc++-raw-cxx.m4 b/config/libstdc++-raw-cxx.m4
index 20124e3..8052c2f 100644
--- a/config/libstdc++-raw-cxx.m4
+++ b/config/libstdc++-raw-cxx.m4
@@ -14,13 +14,17 @@
# along with GCC; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
-# Define compiler flags, LIBSTDCXX_RAW_CXX_CXXFLAGS, for libstdc++-v3
-# header files to compile libraries in C++ with raw_cxx=true.
+# Define flags, LIBSTDCXX_RAW_CXX_CXXFLAGS and # LIBSTDCXX_RAW_CXX_LDFLAGS,
+# for libstdc++-v3 header files to compile and link libraries in C++ with
+# raw_cxx=true.
AC_DEFUN([GCC_LIBSTDCXX_RAW_CXX_FLAGS], [
AC_REQUIRE([ACX_NONCANONICAL_TARGET])
LIBSTDCXX_RAW_CXX_CXXFLAGS="\
-I\$(top_builddir)/../libstdc++-v3/include \
-I\$(top_builddir)/../libstdc++-v3/include/\$(target_noncanonical) \
-I\$(top_srcdir)/../libstdc++-v3/libsupc++"
+ LIBSTDCXX_RAW_CXX_LDFLAGS="\
+ -I\$(top_builddir)/../libstdc++-v3/src/libstdc++.la"
AC_SUBST(LIBSTDCXX_RAW_CXX_CXXFLAGS)
+ AC_SUBST(LIBSTDCXX_RAW_CXX_LDFLAGS)
])
diff --git a/libjava/Makefile.am b/libjava/Makefile.am
index 1b71962..c6c84e4 100644
--- a/libjava/Makefile.am
+++ b/libjava/Makefile.am
@@ -590,14 +590,11 @@ lib_gnu_awt_xlib_la_DEPENDENCIES =
libgcj-$(gcc_version).jar \
if BUILD_SUBLIBS
lib_gnu_awt_xlib_la_DEPENDENCIES += libgcj-noncore.la
endif
-## We require libstdc++-v3 to be in the same build tree.
lib_gnu_awt_xlib_la_CPPFLAGS = \
$(AM_CPPFLAGS) \
- -I../libstdc++-v3/include \
- -I../libstdc++-v3/include/$(target_noncanonical) \
- -I$(srcdir)/../libstdc++-v3/libsupc++
+ $(LIBSTDCXX_RAW_CXX_CXXFLAGS)
## The mysterious backslash in the grep pattern is consumed by make.
-lib_gnu_awt_xlib_la_LDFLAGS = ../libstdc++-v3/src/libstdc++.la \
+lib_gnu_awt_xlib_la_LDFLAGS = $(LIBSTDCXX_RAW_CXX_LDLAGS) \
@X_PRE_LIBS@ @X_LIBS@ -lX11 @X_EXTRA_LIBS@ \
-rpath $(toolexeclibdir) $(LIBJAVA_LDFLAGS_NOUNDEF) \
-version-info `grep -v '^\#' $(srcdir)/libtool-version`
$(LIBGCJ_LD_SYMBOLIC)
diff --git a/libjava/configure.ac b/libjava/configure.ac
index 5fa75c6..ba6b363 100644
--- a/libjava/configure.ac
+++ b/libjava/configure.ac
@@ -24,6 +24,8 @@ _GCC_TOPLEV_NONCANONICAL_TARGET
AC_SUBST(target_noncanonical)
+GCC_LIBSTDCXX_RAW_CXX_FLAGS
+
# This works around the fact that libtool configuration may change LD
# for this particular configuration, but some shells, instead of
# keeping the changes in LD private, export them just because LD is
diff --git a/libsanitizer/asan/Makefile.am b/libsanitizer/asan/Makefile.am
index 5852c35..95fd75e 100644
--- a/libsanitizer/asan/Makefile.am
+++ b/libsanitizer/asan/Makefile.am
@@ -36,10 +36,11 @@ asan_files = \
libasan_la_SOURCES = $(asan_files)
if USING_MAC_INTERPOSE
libasan_la_SOURCES += dynamic/asan_interceptors_dynamic.cc
-libasan_la_LIBADD =
$(top_builddir)/sanitizer_common/libsanitizer_common.la
$(top_builddir)/../libstdc++-v3/src/libstdc++.la
+libasan_la_LIBADD = $(top_builddir)/sanitizer_common/libsanitizer_common.la
else
-libasan_la_LIBADD =
$(top_builddir)/sanitizer_common/libsanitizer_common.la
$(top_builddir)/interception/libinterception.la
$(top_builddir)/../libstdc++-v3/src/libstdc++.la
+libasan_la_LIBADD =
$(top_builddir)/sanitizer_common/libsanitizer_common.la
$(top_builddir)/interception/libinterception.la
endif
+libasan_la_LIBADD += $(LIBSTDCXX_RAW_CXX_LDLAGS)
libasan_la_LDFLAGS = -version-info `grep -v '^\#'
$(srcdir)/libtool-version` -lpthread -ldl
diff --git a/libsanitizer/tsan/Makefile.am b/libsanitizer/tsan/Makefile.am
index a4e3e51..a92ab34 100644
--- a/libsanitizer/tsan/Makefile.am
+++ b/libsanitizer/tsan/Makefile.am
@@ -34,7 +34,7 @@ tsan_files = \
tsan_symbolize_addr2line_linux.cc
libtsan_la_SOURCES = $(tsan_files)
-libtsan_la_LIBADD =
$(top_builddir)/sanitizer_common/libsanitizer_common.la
$(top_builddir)/interception/libinterception.la
$(top_builddir)/../libstdc++-v3/src/libstdc++.la
+libtsan_la_LIBADD =
$(top_builddir)/sanitizer_common/libsanitizer_common.la
$(top_builddir)/interception/libinterception.la
$(LIBSTDCXX_RAW_CXX_LDLAGS)
libtsan_la_LDFLAGS = -version-info `grep -v '^\#'
$(srcdir)/libtool-version` -lpthread -ldl
MAKEOVERRIDES=
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Use libstdc++-raw-cxx.m4 in libjava
2012-12-11 22:00 Use libstdc++-raw-cxx.m4 in libjava H.J. Lu
@ 2012-12-12 8:50 ` Paolo Bonzini
2013-01-02 11:11 ` Jakub Jelinek
1 sibling, 0 replies; 10+ messages in thread
From: Paolo Bonzini @ 2012-12-12 8:50 UTC (permalink / raw)
To: H.J. Lu
Cc: DJ Delorie, neroden, Alexandre Oliva, Ralf Wildenhues, gcc-patches
Il 11/12/2012 23:00, H.J. Lu ha scritto:
> ## The mysterious backslash in the grep pattern is consumed by make.
> -lib_gnu_awt_xlib_la_LDFLAGS = ../libstdc++-v3/src/libstdc++.la \
> +lib_gnu_awt_xlib_la_LDFLAGS = $(LIBSTDCXX_RAW_CXX_LDLAGS) \
> @X_PRE_LIBS@ @X_LIBS@ -lX11 @X_EXTRA_LIBS@ \
> -rpath $(toolexeclibdir) $(LIBJAVA_LDFLAGS_NOUNDEF) \
> -version-info `grep -v '^\#' $(srcdir)/libtool-version`
I'm not sure this comment about the mysterious backslash is actually
true. Anyway, unrelated to this patch.
Ok for trunk, thanks.
Paolo
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Use libstdc++-raw-cxx.m4 in libjava
2012-12-11 22:00 Use libstdc++-raw-cxx.m4 in libjava H.J. Lu
2012-12-12 8:50 ` Paolo Bonzini
@ 2013-01-02 11:11 ` Jakub Jelinek
2013-01-02 11:27 ` Andreas Schwab
1 sibling, 1 reply; 10+ messages in thread
From: Jakub Jelinek @ 2013-01-02 11:11 UTC (permalink / raw)
To: H.J. Lu
Cc: Paolo Bonzini, DJ Delorie, neroden, Alexandre Oliva,
Ralf Wildenhues, gcc-patches
On Tue, Dec 11, 2012 at 02:00:18PM -0800, H.J. Lu wrote:
> 2012-12-11 H.J. Lu <hongjiu.lu@intel.com>
>
> * libstdc++-raw-cxx.m4 (GCC_LIBSTDCXX_RAW_CXX_FLAGS): Also
> AC_SUBST LIBSTDCXX_RAW_CXX_LDFLAGS.
> --- a/config/libstdc++-raw-cxx.m4
> +++ b/config/libstdc++-raw-cxx.m4
> @@ -14,13 +14,17 @@
> # along with GCC; see the file COPYING3. If not see
> # <http://www.gnu.org/licenses/>.
>
> -# Define compiler flags, LIBSTDCXX_RAW_CXX_CXXFLAGS, for libstdc++-v3
> -# header files to compile libraries in C++ with raw_cxx=true.
> +# Define flags, LIBSTDCXX_RAW_CXX_CXXFLAGS and # LIBSTDCXX_RAW_CXX_LDFLAGS,
> +# for libstdc++-v3 header files to compile and link libraries in C++ with
> +# raw_cxx=true.
> AC_DEFUN([GCC_LIBSTDCXX_RAW_CXX_FLAGS], [
> AC_REQUIRE([ACX_NONCANONICAL_TARGET])
> LIBSTDCXX_RAW_CXX_CXXFLAGS="\
> -I\$(top_builddir)/../libstdc++-v3/include \
> -I\$(top_builddir)/../libstdc++-v3/include/\$(target_noncanonical) \
> -I\$(top_srcdir)/../libstdc++-v3/libsupc++"
> + LIBSTDCXX_RAW_CXX_LDFLAGS="\
> + -I\$(top_builddir)/../libstdc++-v3/src/libstdc++.la"
-I..../libstdc++-v3/src/libstdc++.la ? That can't be right, libstdc++.la
is not a directory containing header files.
Jakub
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Use libstdc++-raw-cxx.m4 in libjava
2013-01-02 11:11 ` Jakub Jelinek
@ 2013-01-02 11:27 ` Andreas Schwab
2013-01-03 17:18 ` H.J. Lu
0 siblings, 1 reply; 10+ messages in thread
From: Andreas Schwab @ 2013-01-02 11:27 UTC (permalink / raw)
To: Jakub Jelinek
Cc: H.J. Lu, Paolo Bonzini, DJ Delorie, neroden, Alexandre Oliva,
Ralf Wildenhues, gcc-patches
Jakub Jelinek <jakub@redhat.com> writes:
> On Tue, Dec 11, 2012 at 02:00:18PM -0800, H.J. Lu wrote:
>> 2012-12-11 H.J. Lu <hongjiu.lu@intel.com>
>>
>> * libstdc++-raw-cxx.m4 (GCC_LIBSTDCXX_RAW_CXX_FLAGS): Also
>> AC_SUBST LIBSTDCXX_RAW_CXX_LDFLAGS.
>
>> --- a/config/libstdc++-raw-cxx.m4
>> +++ b/config/libstdc++-raw-cxx.m4
>> @@ -14,13 +14,17 @@
>> # along with GCC; see the file COPYING3. If not see
>> # <http://www.gnu.org/licenses/>.
>>
>> -# Define compiler flags, LIBSTDCXX_RAW_CXX_CXXFLAGS, for libstdc++-v3
>> -# header files to compile libraries in C++ with raw_cxx=true.
>> +# Define flags, LIBSTDCXX_RAW_CXX_CXXFLAGS and # LIBSTDCXX_RAW_CXX_LDFLAGS,
>> +# for libstdc++-v3 header files to compile and link libraries in C++ with
>> +# raw_cxx=true.
>> AC_DEFUN([GCC_LIBSTDCXX_RAW_CXX_FLAGS], [
>> AC_REQUIRE([ACX_NONCANONICAL_TARGET])
>> LIBSTDCXX_RAW_CXX_CXXFLAGS="\
>> -I\$(top_builddir)/../libstdc++-v3/include \
>> -I\$(top_builddir)/../libstdc++-v3/include/\$(target_noncanonical) \
>> -I\$(top_srcdir)/../libstdc++-v3/libsupc++"
>> + LIBSTDCXX_RAW_CXX_LDFLAGS="\
>> + -I\$(top_builddir)/../libstdc++-v3/src/libstdc++.la"
>
> -I..../libstdc++-v3/src/libstdc++.la ? That can't be right, libstdc++.la
> is not a directory containing header files.
And a library shouldn't be put on LDFLAGS, but on LIBADD. And
LIBSTDCXX_RAW_CXX_LDLAGS doesn't exist.
Andreas.
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Use libstdc++-raw-cxx.m4 in libjava
2013-01-02 11:27 ` Andreas Schwab
@ 2013-01-03 17:18 ` H.J. Lu
2013-01-03 18:09 ` Andreas Schwab
0 siblings, 1 reply; 10+ messages in thread
From: H.J. Lu @ 2013-01-03 17:18 UTC (permalink / raw)
To: Andreas Schwab
Cc: Jakub Jelinek, Paolo Bonzini, DJ Delorie, neroden,
Alexandre Oliva, Ralf Wildenhues, gcc-patches
On Wed, Jan 2, 2013 at 3:27 AM, Andreas Schwab <schwab@linux-m68k.org> wrote:
> Jakub Jelinek <jakub@redhat.com> writes:
>
>> On Tue, Dec 11, 2012 at 02:00:18PM -0800, H.J. Lu wrote:
>>> 2012-12-11 H.J. Lu <hongjiu.lu@intel.com>
>>>
>>> * libstdc++-raw-cxx.m4 (GCC_LIBSTDCXX_RAW_CXX_FLAGS): Also
>>> AC_SUBST LIBSTDCXX_RAW_CXX_LDFLAGS.
>>
>>> --- a/config/libstdc++-raw-cxx.m4
>>> +++ b/config/libstdc++-raw-cxx.m4
>>> @@ -14,13 +14,17 @@
>>> # along with GCC; see the file COPYING3. If not see
>>> # <http://www.gnu.org/licenses/>.
>>>
>>> -# Define compiler flags, LIBSTDCXX_RAW_CXX_CXXFLAGS, for libstdc++-v3
>>> -# header files to compile libraries in C++ with raw_cxx=true.
>>> +# Define flags, LIBSTDCXX_RAW_CXX_CXXFLAGS and # LIBSTDCXX_RAW_CXX_LDFLAGS,
>>> +# for libstdc++-v3 header files to compile and link libraries in C++ with
>>> +# raw_cxx=true.
>>> AC_DEFUN([GCC_LIBSTDCXX_RAW_CXX_FLAGS], [
>>> AC_REQUIRE([ACX_NONCANONICAL_TARGET])
>>> LIBSTDCXX_RAW_CXX_CXXFLAGS="\
>>> -I\$(top_builddir)/../libstdc++-v3/include \
>>> -I\$(top_builddir)/../libstdc++-v3/include/\$(target_noncanonical) \
>>> -I\$(top_srcdir)/../libstdc++-v3/libsupc++"
>>> + LIBSTDCXX_RAW_CXX_LDFLAGS="\
>>> + -I\$(top_builddir)/../libstdc++-v3/src/libstdc++.la"
>>
>> -I..../libstdc++-v3/src/libstdc++.la ? That can't be right, libstdc++.la
>> is not a directory containing header files.
>
> And a library shouldn't be put on LDFLAGS, but on LIBADD. And
> LIBSTDCXX_RAW_CXX_LDLAGS doesn't exist.
>
Here is the patch. OK to install?
Thanks.
--
H.J.
---
config/
2013-01-03 H.J. Lu <hongjiu.lu@intel.com>
* libstdc++-raw-cxx.m4 (GCC_LIBSTDCXX_RAW_CXX_FLAGS): Replace
LIBSTDCXX_RAW_CXX_LDFLAGS with LIBSTDCXX_RAW_CXX_LIBADD.
libjava/
2013-01-03 H.J. Lu <hongjiu.lu@intel.com>
* Makefile.am (lib_gnu_awt_xlib_la_LDFLAGS): Replace
LIBSTDCXX_RAW_CXX_LDLAGS with LIBSTDCXX_RAW_CXX_LIBADD.
* Makefile.in: Regenerated.
libsanitizer/
2013-01-03 H.J. Lu <hongjiu.lu@intel.com>
* asan/Makefile.am (libasan_la_LIBADD): Replace
LIBSTDCXX_RAW_CXX_LDLAGS with LIBSTDCXX_RAW_CXX_LIBADD.
* tsan/Makefile.am (libtsan_la_LIBADD): Likewise.
* Makefile.in: Regenerated.
* configure: Likewise.
* asan/Makefile.in: Likewise.
* interception/Makefile.in: Likewise.
* sanitizer_common/Makefile.in: Likewise.
* tsan/Makefile.in: Likewise.
diff --git a/config/libstdc++-raw-cxx.m4 b/config/libstdc++-raw-cxx.m4
index 8052c2f..d7aa1a9 100644
--- a/config/libstdc++-raw-cxx.m4
+++ b/config/libstdc++-raw-cxx.m4
@@ -23,8 +23,8 @@ AC_DEFUN([GCC_LIBSTDCXX_RAW_CXX_FLAGS], [
-I\$(top_builddir)/../libstdc++-v3/include \
-I\$(top_builddir)/../libstdc++-v3/include/\$(target_noncanonical) \
-I\$(top_srcdir)/../libstdc++-v3/libsupc++"
- LIBSTDCXX_RAW_CXX_LDFLAGS="\
- -I\$(top_builddir)/../libstdc++-v3/src/libstdc++.la"
+ LIBSTDCXX_RAW_CXX_LIBADD="\
+ \$(top_builddir)/../libstdc++-v3/src/libstdc++.la"
AC_SUBST(LIBSTDCXX_RAW_CXX_CXXFLAGS)
- AC_SUBST(LIBSTDCXX_RAW_CXX_LDFLAGS)
+ AC_SUBST(LIBSTDCXX_RAW_CXX_LIBADD)
])
diff --git a/libjava/Makefile.am b/libjava/Makefile.am
index c6c84e4..dd08a4f 100644
--- a/libjava/Makefile.am
+++ b/libjava/Makefile.am
@@ -594,7 +594,7 @@ lib_gnu_awt_xlib_la_CPPFLAGS = \
$(AM_CPPFLAGS) \
$(LIBSTDCXX_RAW_CXX_CXXFLAGS)
## The mysterious backslash in the grep pattern is consumed by make.
-lib_gnu_awt_xlib_la_LDFLAGS = $(LIBSTDCXX_RAW_CXX_LDLAGS) \
+lib_gnu_awt_xlib_la_LDFLAGS = $(LIBSTDCXX_RAW_CXX_LIBADD) \
@X_PRE_LIBS@ @X_LIBS@ -lX11 @X_EXTRA_LIBS@ \
-rpath $(toolexeclibdir) $(LIBJAVA_LDFLAGS_NOUNDEF) \
-version-info `grep -v '^\#' $(srcdir)/libtool-version`
$(LIBGCJ_LD_SYMBOLIC)
diff --git a/libsanitizer/asan/Makefile.am b/libsanitizer/asan/Makefile.am
index 76cdcfd..b5a61ec 100644
--- a/libsanitizer/asan/Makefile.am
+++ b/libsanitizer/asan/Makefile.am
@@ -40,7 +40,7 @@ libasan_la_LIBADD =
$(top_builddir)/sanitizer_common/libsanitizer_common.la
else
libasan_la_LIBADD =
$(top_builddir)/sanitizer_common/libsanitizer_common.la
$(top_builddir)/interception/libinterception.la
endif
-libasan_la_LIBADD += $(LIBSTDCXX_RAW_CXX_LDLAGS)
+libasan_la_LIBADD += $(LIBSTDCXX_RAW_CXX_LIBADD)
libasan_la_LDFLAGS = -version-info `grep -v '^\#'
$(srcdir)/libtool-version` -lpthread -ldl
diff --git a/libsanitizer/tsan/Makefile.am b/libsanitizer/tsan/Makefile.am
index 435fe71..62e339e 100644
--- a/libsanitizer/tsan/Makefile.am
+++ b/libsanitizer/tsan/Makefile.am
@@ -34,7 +34,7 @@ tsan_files = \
tsan_symbolize_addr2line_linux.cc
libtsan_la_SOURCES = $(tsan_files)
-libtsan_la_LIBADD =
$(top_builddir)/sanitizer_common/libsanitizer_common.la
$(top_builddir)/interception/libinterception.la
$(LIBSTDCXX_RAW_CXX_LDLAGS)
+libtsan_la_LIBADD =
$(top_builddir)/sanitizer_common/libsanitizer_common.la
$(top_builddir)/interception/libinterception.la
$(LIBSTDCXX_RAW_CXX_LIBADD)
libtsan_la_LDFLAGS = -version-info `grep -v '^\#'
$(srcdir)/libtool-version` -lpthread -ldl
# Work around what appears to be a GNU make bug handling MAKEFLAGS
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Use libstdc++-raw-cxx.m4 in libjava
2013-01-03 17:18 ` H.J. Lu
@ 2013-01-03 18:09 ` Andreas Schwab
2013-01-03 18:47 ` H.J. Lu
0 siblings, 1 reply; 10+ messages in thread
From: Andreas Schwab @ 2013-01-03 18:09 UTC (permalink / raw)
To: H.J. Lu
Cc: Jakub Jelinek, Paolo Bonzini, DJ Delorie, neroden,
Alexandre Oliva, Ralf Wildenhues, gcc-patches
"H.J. Lu" <hjl.tools@gmail.com> writes:
> diff --git a/libjava/Makefile.am b/libjava/Makefile.am
> index c6c84e4..dd08a4f 100644
> --- a/libjava/Makefile.am
> +++ b/libjava/Makefile.am
> @@ -594,7 +594,7 @@ lib_gnu_awt_xlib_la_CPPFLAGS = \
> $(AM_CPPFLAGS) \
> $(LIBSTDCXX_RAW_CXX_CXXFLAGS)
> ## The mysterious backslash in the grep pattern is consumed by make.
> -lib_gnu_awt_xlib_la_LDFLAGS = $(LIBSTDCXX_RAW_CXX_LDLAGS) \
> +lib_gnu_awt_xlib_la_LDFLAGS = $(LIBSTDCXX_RAW_CXX_LIBADD) \
> @X_PRE_LIBS@ @X_LIBS@ -lX11 @X_EXTRA_LIBS@ \
> -rpath $(toolexeclibdir) $(LIBJAVA_LDFLAGS_NOUNDEF) \
> -version-info `grep -v '^\#' $(srcdir)/libtool-version`
> $(LIBGCJ_LD_SYMBOLIC)
It is still wrong to use LDFLAGS for libraries to be linked in.
All of $(LIBSTDCXX_RAW_CXX_LIBADD) @X_PRE_LIBS@ @X_LIBS@ -lX11
@X_EXTRA_LIBS@ should be on lib_gnu_awt_xlib_la_LDADD.
Andreas.
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Use libstdc++-raw-cxx.m4 in libjava
2013-01-03 18:09 ` Andreas Schwab
@ 2013-01-03 18:47 ` H.J. Lu
2013-01-04 10:06 ` Andreas Schwab
0 siblings, 1 reply; 10+ messages in thread
From: H.J. Lu @ 2013-01-03 18:47 UTC (permalink / raw)
To: Andreas Schwab
Cc: Jakub Jelinek, Paolo Bonzini, DJ Delorie, neroden,
Alexandre Oliva, Ralf Wildenhues, gcc-patches
On Thu, Jan 3, 2013 at 10:09 AM, Andreas Schwab <schwab@linux-m68k.org> wrote:
> "H.J. Lu" <hjl.tools@gmail.com> writes:
>
>> diff --git a/libjava/Makefile.am b/libjava/Makefile.am
>> index c6c84e4..dd08a4f 100644
>> --- a/libjava/Makefile.am
>> +++ b/libjava/Makefile.am
>> @@ -594,7 +594,7 @@ lib_gnu_awt_xlib_la_CPPFLAGS = \
>> $(AM_CPPFLAGS) \
>> $(LIBSTDCXX_RAW_CXX_CXXFLAGS)
>> ## The mysterious backslash in the grep pattern is consumed by make.
>> -lib_gnu_awt_xlib_la_LDFLAGS = $(LIBSTDCXX_RAW_CXX_LDLAGS) \
>> +lib_gnu_awt_xlib_la_LDFLAGS = $(LIBSTDCXX_RAW_CXX_LIBADD) \
>> @X_PRE_LIBS@ @X_LIBS@ -lX11 @X_EXTRA_LIBS@ \
>> -rpath $(toolexeclibdir) $(LIBJAVA_LDFLAGS_NOUNDEF) \
>> -version-info `grep -v '^\#' $(srcdir)/libtool-version`
>> $(LIBGCJ_LD_SYMBOLIC)
>
> It is still wrong to use LDFLAGS for libraries to be linked in.
> All of $(LIBSTDCXX_RAW_CXX_LIBADD) @X_PRE_LIBS@ @X_LIBS@ -lX11
> @X_EXTRA_LIBS@ should be on lib_gnu_awt_xlib_la_LDADD.
>
This was how it was done before my change. If we want to
make a change, I can submit a separate patch.
--
H.J.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Use libstdc++-raw-cxx.m4 in libjava
2013-01-03 18:47 ` H.J. Lu
@ 2013-01-04 10:06 ` Andreas Schwab
2013-01-04 14:56 ` H.J. Lu
0 siblings, 1 reply; 10+ messages in thread
From: Andreas Schwab @ 2013-01-04 10:06 UTC (permalink / raw)
To: H.J. Lu
Cc: Jakub Jelinek, Paolo Bonzini, DJ Delorie, neroden,
Alexandre Oliva, Ralf Wildenhues, gcc-patches
"H.J. Lu" <hjl.tools@gmail.com> writes:
> On Thu, Jan 3, 2013 at 10:09 AM, Andreas Schwab <schwab@linux-m68k.org> wrote:
>> "H.J. Lu" <hjl.tools@gmail.com> writes:
>>
>>> diff --git a/libjava/Makefile.am b/libjava/Makefile.am
>>> index c6c84e4..dd08a4f 100644
>>> --- a/libjava/Makefile.am
>>> +++ b/libjava/Makefile.am
>>> @@ -594,7 +594,7 @@ lib_gnu_awt_xlib_la_CPPFLAGS = \
>>> $(AM_CPPFLAGS) \
>>> $(LIBSTDCXX_RAW_CXX_CXXFLAGS)
>>> ## The mysterious backslash in the grep pattern is consumed by make.
>>> -lib_gnu_awt_xlib_la_LDFLAGS = $(LIBSTDCXX_RAW_CXX_LDLAGS) \
>>> +lib_gnu_awt_xlib_la_LDFLAGS = $(LIBSTDCXX_RAW_CXX_LIBADD) \
>>> @X_PRE_LIBS@ @X_LIBS@ -lX11 @X_EXTRA_LIBS@ \
>>> -rpath $(toolexeclibdir) $(LIBJAVA_LDFLAGS_NOUNDEF) \
>>> -version-info `grep -v '^\#' $(srcdir)/libtool-version`
>>> $(LIBGCJ_LD_SYMBOLIC)
>>
>> It is still wrong to use LDFLAGS for libraries to be linked in.
>> All of $(LIBSTDCXX_RAW_CXX_LIBADD) @X_PRE_LIBS@ @X_LIBS@ -lX11
>> @X_EXTRA_LIBS@ should be on lib_gnu_awt_xlib_la_LDADD.
>>
>
> This was how it was done before my change. If we want to
> make a change, I can submit a separate patch.
Libraries should never occur before the objects which reference them.
Andreas.
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Use libstdc++-raw-cxx.m4 in libjava
2013-01-04 10:06 ` Andreas Schwab
@ 2013-01-04 14:56 ` H.J. Lu
2013-01-07 17:49 ` H.J. Lu
0 siblings, 1 reply; 10+ messages in thread
From: H.J. Lu @ 2013-01-04 14:56 UTC (permalink / raw)
To: Andreas Schwab
Cc: Jakub Jelinek, Paolo Bonzini, DJ Delorie, neroden,
Alexandre Oliva, Ralf Wildenhues, gcc-patches
On Fri, Jan 4, 2013 at 2:06 AM, Andreas Schwab <schwab@linux-m68k.org> wrote:
> "H.J. Lu" <hjl.tools@gmail.com> writes:
>
>> On Thu, Jan 3, 2013 at 10:09 AM, Andreas Schwab <schwab@linux-m68k.org> wrote:
>>> "H.J. Lu" <hjl.tools@gmail.com> writes:
>>>
>>>> diff --git a/libjava/Makefile.am b/libjava/Makefile.am
>>>> index c6c84e4..dd08a4f 100644
>>>> --- a/libjava/Makefile.am
>>>> +++ b/libjava/Makefile.am
>>>> @@ -594,7 +594,7 @@ lib_gnu_awt_xlib_la_CPPFLAGS = \
>>>> $(AM_CPPFLAGS) \
>>>> $(LIBSTDCXX_RAW_CXX_CXXFLAGS)
>>>> ## The mysterious backslash in the grep pattern is consumed by make.
>>>> -lib_gnu_awt_xlib_la_LDFLAGS = $(LIBSTDCXX_RAW_CXX_LDLAGS) \
>>>> +lib_gnu_awt_xlib_la_LDFLAGS = $(LIBSTDCXX_RAW_CXX_LIBADD) \
>>>> @X_PRE_LIBS@ @X_LIBS@ -lX11 @X_EXTRA_LIBS@ \
>>>> -rpath $(toolexeclibdir) $(LIBJAVA_LDFLAGS_NOUNDEF) \
>>>> -version-info `grep -v '^\#' $(srcdir)/libtool-version`
>>>> $(LIBGCJ_LD_SYMBOLIC)
>>>
>>> It is still wrong to use LDFLAGS for libraries to be linked in.
>>> All of $(LIBSTDCXX_RAW_CXX_LIBADD) @X_PRE_LIBS@ @X_LIBS@ -lX11
>>> @X_EXTRA_LIBS@ should be on lib_gnu_awt_xlib_la_LDADD.
>>>
>>
>> This was how it was done before my change. If we want to
>> make a change, I can submit a separate patch.
>
> Libraries should never occur before the objects which reference them.
>
This is in GCC 4.7:
lib_gnu_awt_xlib_la_LDFLAGS = ../libstdc++-v3/src/libstdc++.la \
@X_PRE_LIBS@ @X_LIBS@ -lX11 @X_EXTRA_LIBS@ \
-rpath $(toolexeclibdir) $(LIBJAVA_LDFLAGS_NOUNDEF) \
-version-info `grep -v '^\#' $(srcdir)/libtool-version`
$(LIBGCJ_LD_SYMBOLIC)
lib_gnu_awt_xlib_la_LINK = $(LIBLINK) $(lib_gnu_awt_xlib_la_LDFLAGS) \
$(lib_gnu_awt_xlib_la_version_arg)
It does put libraries first. If it is a real bug, it should be fixed
separately.
--
H.J.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Use libstdc++-raw-cxx.m4 in libjava
2013-01-04 14:56 ` H.J. Lu
@ 2013-01-07 17:49 ` H.J. Lu
0 siblings, 0 replies; 10+ messages in thread
From: H.J. Lu @ 2013-01-07 17:49 UTC (permalink / raw)
To: Andreas Schwab
Cc: Jakub Jelinek, Paolo Bonzini, DJ Delorie, neroden,
Alexandre Oliva, Ralf Wildenhues, gcc-patches
On Fri, Jan 4, 2013 at 6:56 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Fri, Jan 4, 2013 at 2:06 AM, Andreas Schwab <schwab@linux-m68k.org> wrote:
>> "H.J. Lu" <hjl.tools@gmail.com> writes:
>>
>>> On Thu, Jan 3, 2013 at 10:09 AM, Andreas Schwab <schwab@linux-m68k.org> wrote:
>>>> "H.J. Lu" <hjl.tools@gmail.com> writes:
>>>>
>>>>> diff --git a/libjava/Makefile.am b/libjava/Makefile.am
>>>>> index c6c84e4..dd08a4f 100644
>>>>> --- a/libjava/Makefile.am
>>>>> +++ b/libjava/Makefile.am
>>>>> @@ -594,7 +594,7 @@ lib_gnu_awt_xlib_la_CPPFLAGS = \
>>>>> $(AM_CPPFLAGS) \
>>>>> $(LIBSTDCXX_RAW_CXX_CXXFLAGS)
>>>>> ## The mysterious backslash in the grep pattern is consumed by make.
>>>>> -lib_gnu_awt_xlib_la_LDFLAGS = $(LIBSTDCXX_RAW_CXX_LDLAGS) \
>>>>> +lib_gnu_awt_xlib_la_LDFLAGS = $(LIBSTDCXX_RAW_CXX_LIBADD) \
>>>>> @X_PRE_LIBS@ @X_LIBS@ -lX11 @X_EXTRA_LIBS@ \
>>>>> -rpath $(toolexeclibdir) $(LIBJAVA_LDFLAGS_NOUNDEF) \
>>>>> -version-info `grep -v '^\#' $(srcdir)/libtool-version`
>>>>> $(LIBGCJ_LD_SYMBOLIC)
>>>>
>>>> It is still wrong to use LDFLAGS for libraries to be linked in.
>>>> All of $(LIBSTDCXX_RAW_CXX_LIBADD) @X_PRE_LIBS@ @X_LIBS@ -lX11
>>>> @X_EXTRA_LIBS@ should be on lib_gnu_awt_xlib_la_LDADD.
>>>>
>>>
>>> This was how it was done before my change. If we want to
>>> make a change, I can submit a separate patch.
>>
>> Libraries should never occur before the objects which reference them.
>>
>
> This is in GCC 4.7:
>
> lib_gnu_awt_xlib_la_LDFLAGS = ../libstdc++-v3/src/libstdc++.la \
> @X_PRE_LIBS@ @X_LIBS@ -lX11 @X_EXTRA_LIBS@ \
> -rpath $(toolexeclibdir) $(LIBJAVA_LDFLAGS_NOUNDEF) \
> -version-info `grep -v '^\#' $(srcdir)/libtool-version`
> $(LIBGCJ_LD_SYMBOLIC)
> lib_gnu_awt_xlib_la_LINK = $(LIBLINK) $(lib_gnu_awt_xlib_la_LDFLAGS) \
> $(lib_gnu_awt_xlib_la_version_arg)
>
> It does put libraries first. If it is a real bug, it should be fixed
> separately.
>
> --
> H.J.
I am checking in this patch to fix the typo. We can leave
LIBADD change to 4.9.
--
H.J.
---
config/
2013-01-07 H.J. Lu <hongjiu.lu@intel.com>
* libstdc++-raw-cxx.m4 (GCC_LIBSTDCXX_RAW_CXX_FLAGS): Remove
"-I" from LIBSTDCXX_RAW_CXX_LDFLAGS.
libjava/
2013-01-07 H.J. Lu <hongjiu.lu@intel.com>
* Makefile.am (lib_gnu_awt_xlib_la_LDFLAGS): Replace
LIBSTDCXX_RAW_CXX_LDLAGS with LIBSTDCXX_RAW_CXX_LDFLAGS.
* Makefile.in: Regenerated.
libsanitizer/
2013-01-07 H.J. Lu <hongjiu.lu@intel.com>
* asan/Makefile.am (libasan_la_LIBADD): Replace
LIBSTDCXX_RAW_CXX_LDLAGS with LIBSTDCXX_RAW_CXX_LDFLAGS.
* tsan/Makefile.am (libtsan_la_LIBADD): Likewise.
* Makefile.in: Regenerated.
* configure: Likewise.
* asan/Makefile.in: Likewise.
* interception/Makefile.in: Likewise.
* sanitizer_common/Makefile.in: Likewise.
* tsan/Makefile.in: Likewise.
diff --git a/config/libstdc++-raw-cxx.m4 b/config/libstdc++-raw-cxx.m4
index 8052c2f..aafa509 100644
--- a/config/libstdc++-raw-cxx.m4
+++ b/config/libstdc++-raw-cxx.m4
@@ -24,7 +24,7 @@ AC_DEFUN([GCC_LIBSTDCXX_RAW_CXX_FLAGS], [
-I\$(top_builddir)/../libstdc++-v3/include/\$(target_noncanonical) \
-I\$(top_srcdir)/../libstdc++-v3/libsupc++"
LIBSTDCXX_RAW_CXX_LDFLAGS="\
- -I\$(top_builddir)/../libstdc++-v3/src/libstdc++.la"
+ \$(top_builddir)/../libstdc++-v3/src/libstdc++.la"
AC_SUBST(LIBSTDCXX_RAW_CXX_CXXFLAGS)
AC_SUBST(LIBSTDCXX_RAW_CXX_LDFLAGS)
])
diff --git a/libjava/Makefile.am b/libjava/Makefile.am
index c6c84e4..a4941a9 100644
--- a/libjava/Makefile.am
+++ b/libjava/Makefile.am
@@ -594,7 +594,7 @@ lib_gnu_awt_xlib_la_CPPFLAGS = \
$(AM_CPPFLAGS) \
$(LIBSTDCXX_RAW_CXX_CXXFLAGS)
## The mysterious backslash in the grep pattern is consumed by make.
-lib_gnu_awt_xlib_la_LDFLAGS = $(LIBSTDCXX_RAW_CXX_LDLAGS) \
+lib_gnu_awt_xlib_la_LDFLAGS = $(LIBSTDCXX_RAW_CXX_LDFLAGS) \
@X_PRE_LIBS@ @X_LIBS@ -lX11 @X_EXTRA_LIBS@ \
-rpath $(toolexeclibdir) $(LIBJAVA_LDFLAGS_NOUNDEF) \
-version-info `grep -v '^\#' $(srcdir)/libtool-version`
$(LIBGCJ_LD_SYMBOLIC)
diff --git a/libsanitizer/asan/Makefile.am b/libsanitizer/asan/Makefile.am
index 76cdcfd..04a621f 100644
--- a/libsanitizer/asan/Makefile.am
+++ b/libsanitizer/asan/Makefile.am
@@ -40,7 +40,7 @@ libasan_la_LIBADD =
$(top_builddir)/sanitizer_common/libsanitizer_common.la
else
libasan_la_LIBADD =
$(top_builddir)/sanitizer_common/libsanitizer_common.la
$(top_builddir)/interception/libinterception.la
endif
-libasan_la_LIBADD += $(LIBSTDCXX_RAW_CXX_LDLAGS)
+libasan_la_LIBADD += $(LIBSTDCXX_RAW_CXX_LDFLAGS)
libasan_la_LDFLAGS = -version-info `grep -v '^\#'
$(srcdir)/libtool-version` -lpthread -ldl
diff --git a/libsanitizer/tsan/Makefile.am b/libsanitizer/tsan/Makefile.am
index 435fe71..26d1af2 100644
--- a/libsanitizer/tsan/Makefile.am
+++ b/libsanitizer/tsan/Makefile.am
@@ -34,7 +34,7 @@ tsan_files = \
tsan_symbolize_addr2line_linux.cc
libtsan_la_SOURCES = $(tsan_files)
-libtsan_la_LIBADD =
$(top_builddir)/sanitizer_common/libsanitizer_common.la
$(top_builddir)/interception/libinterception.la
$(LIBSTDCXX_RAW_CXX_LDLAGS)
+libtsan_la_LIBADD =
$(top_builddir)/sanitizer_common/libsanitizer_common.la
$(top_builddir)/interception/libinterception.la
$(LIBSTDCXX_RAW_CXX_LDFLAGS)
libtsan_la_LDFLAGS = -version-info `grep -v '^\#'
$(srcdir)/libtool-version` -lpthread -ldl
# Work around what appears to be a GNU make bug handling MAKEFLAGS
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2013-01-07 17:49 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-12-11 22:00 Use libstdc++-raw-cxx.m4 in libjava H.J. Lu
2012-12-12 8:50 ` Paolo Bonzini
2013-01-02 11:11 ` Jakub Jelinek
2013-01-02 11:27 ` Andreas Schwab
2013-01-03 17:18 ` H.J. Lu
2013-01-03 18:09 ` Andreas Schwab
2013-01-03 18:47 ` H.J. Lu
2013-01-04 10:06 ` Andreas Schwab
2013-01-04 14:56 ` H.J. Lu
2013-01-07 17:49 ` H.J. Lu
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).