diff mbox

PR other/55291: Add support for GCC multilib run-time libraries to libsanitizer

Message ID CAMe9rOrbn7PLFteZMOL0YU6xRAcb0FTsLFrfd6GCQ+_NFyO7dQ@mail.gmail.com
State New
Headers show

Commit Message

H.J. Lu Nov. 13, 2012, 11:43 p.m. UTC
On Tue, Nov 13, 2012 at 3:31 PM, Paolo Bonzini <bonzini@gnu.org> wrote:
> Il 14/11/2012 00:27, H.J. Lu ha scritto:
>> On Tue, Nov 13, 2012 at 3:19 PM, Paolo Bonzini <bonzini@gnu.org> wrote:
>>> Il 14/11/2012 00:16, H.J. Lu ha scritto:
>>>>>> What has to be fixed about it?  Anything except AC_PREREQ/AC_CONFIG_AUX_DIR?
>>>>>>
>>>>>> I really would prefer to do it in the order I mentioned above.
>>>> We also need
>>>>
>>>> [hjl@gnu-tools-1 libsanitizer]$ cat acinclude.m4
>>>> dnl ----------------------------------------------------------------------
>>>> dnl This whole bit snagged from libgfortran.
>>>>
>>>> sinclude(../libtool.m4)
>>>> dnl The lines below arrange for aclocal not to bring an installed
>>>> dnl libtool.m4 into aclocal.m4, while still arranging for automake to
>>>> dnl add a definition of LIBTOOL to Makefile.in.
>>>> ifelse(,,,[AC_SUBST(LIBTOOL)
>>>> AC_DEFUN([AM_PROG_LIBTOOL])
>>>> ])
>>>> [hjl@gnu-tools-1 libsanitizer]$
>>>>
>>>> Otherwise, autoconf won't work.
>>>
>>> Sure, that's fine to include too.
>>>
>>
>> We need all changes in:
>>
>>       * acinclude.m4: New file.
>>       * Makefile.am (ACLOCAL_AMFLAGS): New.
>>       * configure.ac (AC_PREREQ): Set to 2.64.
>>       (AC_CONFIG_AUX_DIR): Set to "..".
>>       (--enable-version-specific-runtime-libs): New option.
>>       (AC_CANONICAL_SYSTEM): New.
>>       (AM_ENABLE_MULTILIB): Moved right after AM_INIT_AUTOMAKE.
>>       (toolexecdir): Support multilib.
>>       (toolexeclibdir): Likewise.
>>
>> Missing one will cause a problem.
>
> I don't understand why removing files needs
> --enable-version-specific-runtime-libs or multilibs.
>

This works.

Comments

Paolo Bonzini Nov. 13, 2012, 11:48 p.m. UTC | #1
Il 14/11/2012 00:43, H.J. Lu ha scritto:
> This works.

Ok, then please test remove install-sh and friends and do
autoconf/automake again.  If it works, commit the result (I don't care
if you make it one or two commits).

Then, wait 24 hours for breakages and commit the multilib patch.

Paolo
Markus Trippelsdorf Nov. 14, 2012, 9:57 a.m. UTC | #2
On 2012.11.14 at 00:48 +0100, Paolo Bonzini wrote:
> Il 14/11/2012 00:43, H.J. Lu ha scritto:
> > This works.
> 
> Ok, then please test remove install-sh and friends and do
> autoconf/automake again.  If it works, commit the result (I don't care
> if you make it one or two commits).
> 
> Then, wait 24 hours for breakages and commit the multilib patch.

This doesn't work on my system (with autoconf=2.69 installed)

configure.ac:5: error: Please use exactly Autoconf 2.64 instead of 2.69.
../config/override.m4:12: _GCC_AUTOCONF_VERSION_CHECK is expanded
from...
configure.ac:5: the top level
autom4te-2.69: m4 failed with exit status: 1
aclocal-1.11: autom4te failed with exit status: 1

make[2]: *** [/home/markus/gcc/libsanitizer/aclocal.m4] Error 1
make[2]: Leaving directory
`/var/tmp/gcc_build_dir/x86_64-pc-linux-gnu/libsanitizer'
Markus Trippelsdorf Nov. 14, 2012, 10:23 a.m. UTC | #3
On 2012.11.14 at 10:57 +0100, Markus Trippelsdorf wrote:
> On 2012.11.14 at 00:48 +0100, Paolo Bonzini wrote:
> > Il 14/11/2012 00:43, H.J. Lu ha scritto:
> > > This works.
> > 
> > Ok, then please test remove install-sh and friends and do
> > autoconf/automake again.  If it works, commit the result (I don't care
> > if you make it one or two commits).
> > 
> > Then, wait 24 hours for breakages and commit the multilib patch.
> 
> This doesn't work on my system (with autoconf=2.69 installed)
> 
> configure.ac:5: error: Please use exactly Autoconf 2.64 instead of 2.69.
> ../config/override.m4:12: _GCC_AUTOCONF_VERSION_CHECK is expanded
> from...
> configure.ac:5: the top level
> autom4te-2.69: m4 failed with exit status: 1
> aclocal-1.11: autom4te failed with exit status: 1
> 
> make[2]: *** [/home/markus/gcc/libsanitizer/aclocal.m4] Error 1
> make[2]: Leaving directory
> `/var/tmp/gcc_build_dir/x86_64-pc-linux-gnu/libsanitizer'

With the right autotools installed locally, running:

ACLOCAL='aclocal -I .. -I ../config' autoreconf -v && rm -fr autom4te.cache

in gcc/libsanitizer and committing the diff should fix the issue.
diff mbox

Patch

diff --git a/libsanitizer/Makefile.am b/libsanitizer/Makefile.am
index b28eb32..91e3434 100644
--- a/libsanitizer/Makefile.am
+++ b/libsanitizer/Makefile.am
@@ -1,3 +1,5 @@ 
+ACLOCAL_AMFLAGS = -I .. -I ../config
+
 SUBDIRS = interception sanitizer_common asan

 # Work around what appears to be a GNU make bug handling MAKEFLAGS
diff --git a/libsanitizer/acinclude.m4 b/libsanitizer/acinclude.m4
new file mode 100644
index 0000000..8e606e7
--- /dev/null
+++ b/libsanitizer/acinclude.m4
@@ -0,0 +1,10 @@ 
+dnl ----------------------------------------------------------------------
+dnl This whole bit snagged from libgfortran.
+
+sinclude(../libtool.m4)
+dnl The lines below arrange for aclocal not to bring an installed
+dnl libtool.m4 into aclocal.m4, while still arranging for automake to
+dnl add a definition of LIBTOOL to Makefile.in.
+ifelse(,,,[AC_SUBST(LIBTOOL)
+AC_DEFUN([AM_PROG_LIBTOOL])
+])
diff --git a/libsanitizer/configure.ac b/libsanitizer/configure.ac
index 3f186c2..cd57a69 100644
--- a/libsanitizer/configure.ac
+++ b/libsanitizer/configure.ac
@@ -1,10 +1,10 @@ 
 #                                               -*- Autoconf -*-
 # Process this file with autoconf to produce a configure script.

-AC_PREREQ([2.68])
+AC_PREREQ([2.64])
 AC_INIT(package-unused, version-unused, libsanitizer)
 AC_CONFIG_SRCDIR([include/sanitizer/common_interface_defs.h])
-AC_CONFIG_AUX_DIR(.)
+AC_CONFIG_AUX_DIR(..)
 AM_INIT_AUTOMAKE(foreign)

 # Checks for programs.