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

Bug#425445: libx11-6: fails to cross-build. tries to run cross-built makekeys utility



On Sun, 12 Aug 2007 23:29:16 +0200
Julien Cristau <jcristau@debian.org> wrote:

> > Which is preferable:
> > 1. Require GNU make to cross-build, or
> > 2. Hardcode gcc into a series of *manual* make rules in src/utils/
> > 3. find a different way to generate the makekeys output
> > ?
> > 
> Whatever can be accepted upstream.  Which means that 1 is not an option.

What is the problem with keeping a patch in Debian that is not intended
for upstream?

> > OK, it means the patch can't go upstream but if debian/rules can
> > arrange to add the patch (via quilt) only when cross-building, I'd be
> > happy with that.
> > 
> I'm not really interested in a patch which can't go upstream.

Then it looks like I'll have to maintain an Emdebian patch instead.

There has to be a sane way to cross-build the Debian package - the
upstream code cross-builds for others. (See OpenEmbedded.) That is why
I would be happy for this to be a Debian-only solution - there appears
to be something wrong with the Debian build that can work with the raw
upstream code. (i.e. I disagree with the 'upstream' tag on this bug.)

True, if a solution is found that also works upstream then that would
benefit everyone but that is not sufficient cause to refuse to fix the
Debian package, IMHO.

> Does the attached debdiff fix your build (on top of experimental's
> 2:1.1.3-1)?

NO.

(Gee, another 6 dependencies - that's just what I needed for an
embedded X11 system.) :-(

The package in experimental does not even get passed configure because
the new dependencies are also borked.

checking for X11... configure: error: Package requirements (xextproto xtrans xcb-xlib >= 0.9.92) were not met:

Package pthread-stubs was not found in the pkg-config search path.
Perhaps you should add the directory containing `pthread-stubs.pc'
to the PKG_CONFIG_PATH environment variable
Package 'pthread-stubs', required by 'XCB', not found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables X11_CFLAGS
and X11_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

(apt-cross reports the installation status of foo-arm-cross in each case)
$ apt-cross -v -i libxcb1-dev
checking libxcb1-dev dependencies . . . 
libxcb1-dev depends on libxcb1, installed (1.0-3) : OK
libxcb1-dev depends on libpthread-stubs0-dev, installed (0.1-2) : OK
libxcb1-dev depends on libxau-dev, installed (1) : OK
libxcb1-dev depends on libxdmcp-dev, installed (1) : OK
One package to install.
Installing: libxcb1-dev
libxcb1-dev-arm-cross (1.0-3) is already installed.

$ dpkg -l 'libpthread*' | grep arm
ii  libpthread-stubs0-arm-cross     0.1-2          pthread stubs not provided by native libc (f
ii  libpthread-stubs0-dev-arm-cross 0.1-2          pthread stubs not provided by native libc, d

$ dpkg -L libpthread-stubs0-dev
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/libpthread-stubs0-dev
/usr/share/doc/libpthread-stubs0-dev/README
/usr/share/doc/libpthread-stubs0-dev/copyright
/usr/share/doc/libpthread-stubs0-dev/changelog.Debian.gz
/usr/share/pkgconfig
/usr/share/pkgconfig/pthread-stubs.pc

That should be /usr/lib/pkgconfig/pthread-stubs.pc

Forcing the file into the correct location at least allows the build to
continue to the inevitable makekeys failure:

make[3]: Entering directory `/opt/emdebian/trunk/l/libx11/branches/upstream/libx11-1.1.3/obj-x86_64-linux-gnu/src/util'
arm-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I../../src -I../../include/X11 -I../../../src/util    -Wall -Wpointer-arith -Wstrict-prototypes       -Wmissing-prototypes -Wmissing-declarations     -Wnested-externs -fno-strict-aliasing -D_BSD_SOURCE -DHAS_FCHOWN -DHAS_STICKY_DIR_BIT -I/usr/arm-linux-gnu/include    -I/usr/arm-linux-gnu/include   -I/usr/arm-linux-gnu/include   -Wall -g -O2 -MT makekeys-makekeys.o -MD -MP -MF .deps/makekeys-makekeys.Tpo -c -o makekeys-makekeys.o `test -f 'makekeys.c' || echo '../../../src/util/'`makekeys.c
mv -f .deps/makekeys-makekeys.Tpo .deps/makekeys-makekeys.Po
/bin/sh ../../libtool --tag=CC   --mode=link arm-linux-gnu-gcc -Wall -Wpointer-arith -Wstrict-prototypes        -Wmissing-prototypes -Wmissing-declarations  -Wnested-externs -fno-strict-aliasing -D_BSD_SOURCE -DHAS_FCHOWN -DHAS_STICKY_DIR_BIT -I/usr/arm-linux-gnu/include    -I/usr/arm-linux-gnu/include   -I/usr/arm-linux-gnu/include   -Wall -g -O2   -o makekeys makekeys-makekeys.o  -ldl 
mkdir .libs
arm-linux-gnu-gcc -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -fno-strict-aliasing -D_BSD_SOURCE -DHAS_FCHOWN -DHAS_STICKY_DIR_BIT -I/usr/arm-linux-gnu/include -I/usr/arm-linux-gnu/include -I/usr/arm-linux-gnu/include -Wall -g -O2 -o makekeys makekeys-makekeys.o  -ldl  
make[3]: Leaving directory `/opt/emdebian/trunk/l/libx11/branches/upstream/libx11-1.1.3/obj-x86_64-linux-gnu/src/util'
../src/util/makekeys < /usr/arm-linux-gnu/include/X11/keysymdef.h > ks_tables_h
/bin/sh: ../src/util/makekeys: cannot execute binary file
make[2]: *** [ks_tables.h] Error 126
make[2]: Leaving directory `/opt/emdebian/trunk/l/libx11/branches/upstream/libx11-1.1.3/obj-x86_64-linux-gnu/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/opt/emdebian/trunk/l/libx11/branches/upstream/libx11-1.1.3/obj-x86_64-linux-gnu'
make: *** [build-stamp] Error 2
make: Leaving directory `/opt/emdebian/trunk/l/libx11/branches/upstream/libx11-1.1.3'

I'm not sure why you thought this would work because the debdiff
contained no changes that would have resulted in the src/utils/Makefile
using gcc in place of arm-linux-gnu-gcc because the critical variables
are defined BEFORE CC_FOR_BUILD is even specified. THAT is why I had to
use override.

What are you using to build at your end? What is it that makes you
think that this can be solved without 'override' ?

-- 


Neil Williams
=============
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/

Attachment: pgprzfb3m1UAq.pgp
Description: PGP signature


Reply to: