Use libstdc++-raw-cxx.m4 in libjava

H.J. Lu hjl.tools@gmail.com
Fri Jan 4 14:56:00 GMT 2013


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.



More information about the Gcc-patches mailing list