[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#637218: /usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file or directory



On Wed, Aug 10, 2011 at 5:15 AM, Jonathan Nieder <jrnieder@gmail.com> wrote:
> Hi,
>
> Sedat Dilek wrote:
>
>> Do I need additional patches to gcc trunk (I am using the weekly
>> gcc-4.7 snapshot tarballs)?
>
> No need for patches.  My build of gcc trunk finally finished:
>
>        $ ./configure --prefix=$HOME/opt/gcc \
>                CFLAGS_FOR_TARGET="-g -O2 -B/usr/lib/x86_64-linux-gnu" \
>                CXXFLAGS_FOR_TARGET="-g -O2 -B/usr/lib/x86_64-linux-gnu"
>        $ make FLAGS_FOR_TARGET='-B$(build_tooldir)/bin/ '\
> '-B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include '\
> '-isystem $(build_tooldir)/sys-include '\
> '-B/usr/lib/x86_64-linux-gnu' \
>                BOOT_CFLAGS="-g -O2 -B/usr/lib/x86_64-linux-gnu"
>        $ make FLAGS_FOR_TARGET='-B$(build_tooldir)/bin/ '\
> '-B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include '\
> '-isystem $(build_tooldir)/sys-include '\
> '-B/usr/lib/x86_64-linux-gnu' \
>                BOOT_CFLAGS="-g -O2 -B/usr/lib/x86_64-linux-gnu" \
>                install
>
> The resulting compiler even seems to work, as long as you pass
> -B/usr/lib/x86_64-linux-gnu to it.
>
> Yes, it ought to be easier.  Maybe FLAGS_FOR_TARGET does everything we
> need.  I'd be happy to review a patch that teaches configure.ac to
> handle something like
>
>        $ ./configure --prefix=$HOME/opt/gcc \
>                --extra-flags-for-target=-B/usr/lib/x86_64-linux-gnu \
>                BOOT_FLAGS='-g -O2 -B/usr/lib/x86_64-linux-gnu'
>        $ make
>        $ make install
>
> [...]
>> I heard of a gcc multiarch patchset sent to upstream from debian-gcc
>> team - you have an URL?
>
> I'd be interested in the answer to this if there is one, too.
>
> Thanks, Sedat.
> Jonathan
>

First of all, thanks for jumping into the issue and sharing your
thoughts and results/testing.

For i386 I needed to expicitly set -I option with -B option (see [1]),
otherwise I had several breakages with gnu/stubs-32.h when playing
with *_FOR_TARGET options.


### List of *_FOR_TARGET options:

1. CFLAGS_FOR_TARGET
2. CXXFLAGS_FOR_TARGET
3. LDFLAGS_FOR_TARGET
4. FLAGS_FOR_TARGET

### Like you I have explicitly set, but with -I option (always
combined with below options):

$ export CFLAGS_FOR_TARGET='-g -O2 -B/usr/lib/i386-linux-gnu
-I/usr/include/i386-linux-gnu'
$ export CXXFLAGS_FOR_TARGET='-g -O2 -B/usr/lib/i386-linux-gnu
-I/usr/include/i386-linux-gnu'

### Playing with LDFLAGS_FOR_TARGET:

1st-Try:
export LDFLAGS_FOR_TARGET="-L/usr/lib/${HOST_SYSTEM_MULTIARCH_TYPE}
-Wl,-rpath-link=/usr/lib/${HOST_SYSTEM_MULTIARCH_TYPE}:/lib/${HOST_SYSTEM_MULTIARCH_TYPE}:/usr/lib"

2nd-Try:
export LDFLAGS_FOR_TARGET="-B/usr/lib/${HOST_SYSTEM_MULTIARCH_TYPE}
-I/usr/include/${HOST_SYSTEM_MULTIARCH_TYPE}"

3rd-Try:
export LDFLAGS_FOR_TARGET="-L/usr/lib/${HOST_SYSTEM_MULTIARCH_TYPE}
-Wl,-rpath-link=/usr/lib/${HOST_SYSTEM_MULTIARCH_TYPE}"

NOPE: All try-outs are passed-by but did not work as expected, I got
crt*.o was not found. But, isn't LDFLAGS searching for so-libs?

### Playing with FLAGS_FOR_TARGET:

$ make FLAGS_FOR_TARGET="${FLAGS_FOR_TARGET}
-B/usr/lib/${HOST_SYSTEM_MULTIARCH_TYPE}
-I/usr/include/${HOST_SYSTEM_MULTIARCH_TYPE}"

OK: This leads to a successful build, did not test the compiler yet
(flags by-passed to xgcc).

ANYWAY, these workarounds should not be necessary, it should work OOTB.
Not sure, what's wrong.
What do the experts say?

- Sedat -

[1] http://anonscm.debian.org/viewvc/pkg-glibc?view=revision&revision=4863



Reply to: