public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug bootstrap/38866]  New: [Regression] --enable-gstreamer-peer + multilib + 32 bit boot = broken build
@ 2009-01-16  6:05 rob1weld at aol dot com
  0 siblings, 0 replies; only message in thread
From: rob1weld at aol dot com @ 2009-01-16  6:05 UTC (permalink / raw)
  To: gcc-bugs

I'm compiling "gcc version 4.4.0 20090114 (experimental) [trunk revision
143401]" on "i386-pc-solaris2.11" (OpenSolaris 2008.11) and ./configured 
using: --enable-gstreamer-peer


# gcc/xgcc -v
Using built-in specs.
Target: i386-pc-solaris2.11
Configured with: ../gcc_trunk/configure
--enable-languages=ada,c,c++,fortran,java,objc,obj-c++ --enable-shared
--disable-static --enable-decimal-float --with-long-double-128 --enable-nls
--with-included-gettext --enable-gather-detailed-mem-stats --with-stabs
--enable-debug --enable-largefile --enable-symvers --without-system-zlib
--enable-gtk-cairo --enable-gconf-peer --enable-gstreamer-peer --enable-xmlj
--enable-gtk-peer --enable-qt-peer --enable-plugin --enable-tool-wrappers
--enable-local-sockets --enable-gjdoc --enable-java-awt=gtk,xlib,qt,x
--enable-gc-debug --enable-libgcj-debug --enable-objc-gc
--enable-libstdcxx-debug --disable-stage1-checking --enable-checking=release
--without-system-libunwind --with-gnu-as --with-as=/usr/local/bin/as
--with-gnu-ld --with-ld=/usr/local/bin/ld
Thread model: posix
gcc version 4.4.0 20090114 (experimental) [trunk revision 143401] (GCC) 


Most OSes capable of booting 64-bit will also have 32-bit libraries available
but many ONLY have the 32-bit library, no 64-bit version compiled, and the
program's ./configure script does not use --enable-multilib .

When you are booted in 32-bit mode and want to build 64-bit libraries you
can _sometimes_ simply type 'export set CC="gcc -m64"', ./configure and then
build normally with the correct result. 

On some occasions there are many structures to be converted (and correctly
aligned) as the code was not ever intended to be compiled 64-bit on a 32-bit
machine - thus porting is harder and frequently not done.

That means the OS will only have 32-bit _binaries_ installed and to compile
the 64-bit binaries you need to resolve all the dependencies (including this
same issue re-occurring in the dependencies) and build your own.


The "Bug" reported here is:

When you can only boot into 32-bit mode (either due to your processor or
if using VirtualBox it supports 32/32 host/guest on WinXP) and want to
compile gcc 'multilib' (either to distribute gcc or your own libs/execs)
if you choose the ./configure option --enable-gstreamer-peer it only
checks if part of gstreamer is working and then gives an odd message:

/bin/sh ../../../libtool --tag=CC --mode=link
/usr/share/src/gcc_build/./gcc/xgcc -B/usr/share/src/gcc_build/./gcc/
-B/usr/local/i386-pc-solaris2.11/bin/ -B/usr/local/i386-pc-solaris2.11/lib/
-isystem /usr/local/i386-pc-solaris2.11/include -isystem
/usr/local/i386-pc-solaris2.11/sys-include  -m64 -W -Wall
-Wmissing-declarations -Wwrite-strings -Wmissing-prototypes -Wno-long-long
-Wno-write-strings -Wno-missing-field-initializers -Wno-unused-parameter
-D_REENTRANT -D_PTHREADS -I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -I/usr/include/libxml2 -D_REENTRANT
-D_POSIX_PTHREAD_SEMANTICS -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include
-I/usr/include/pango-1.0 -I/usr/X11/include -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -I/usr/include/cairo -I/usr/include/freetype2
-I/usr/include/libpng12   -D_REENTRANT -D_PTHREADS
-I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -I/usr/include/libxml2   -D_REENTRANT -D_PTHREADS
-I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -I/usr/include/libxml2 -fexceptions
-fasynchronous-unwind-tables -g -O2    -m64 -module -version-info 0:0:0
-no-undefined -lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0
-lpthread -lthread -lxml2 -lglib-2.0   -lgstbase-0.10 -lgstreamer-0.10
-lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lpthread -lthread -lxml2 -lglib-2.0
-lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lpthread -lthread
-lxml2 -lglib-2.0   -R/usr/X11/lib -L/usr/X11/lib -lgdk-x11-2.0 -lXi -lXext
-lX11 -lgdk_pixbuf-2.0 -lm -lmlib -lpangocairo-1.0 -lgio-2.0 -lfontconfig
-lXrandr -lXcursor -lXcomposite -lXdamage -lpango-1.0 -lcairo -lgobject-2.0
-lgmodule-2.0 -lglib-2.0 -lXfixes   -m64 -o libgstreamerpeer.la -rpath
/usr/local/lib/amd64/gcj-4.4.0-10 -module -version-info 0:0:0 -no-undefined
-lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lpthread -lthread
-lxml2 -lglib-2.0   -lgstbase-0.10 -lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0
-lgthread-2.0 -lpthread -lthread -lxml2 -lglib-2.0 -lgstreamer-0.10
-lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lpthread -lthread -lxml2 -lglib-2.0 
 -R/usr/X11/lib -L/usr/X11/lib -lgdk-x11-2.0 -lXi -lXext -lX11 -lgdk_pixbuf-2.0
-lm -lmlib -lpangocairo-1.0 -lgio-2.0 -lfontconfig -lXrandr -lXcursor
-lXcomposite -lXdamage -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0
-lglib-2.0 -lXfixes   -module -avoid-version -Wno-unused-parameter
-no-undefined -avoid-version gst_peer.lo gstreamer_io_peer.lo
gst_native_data_line.lo gst_input_stream.lo gst_native_pipeline.lo
gst_classpath_src.lo ../../../native/jni/classpath/jcl.lo -lsocket -lnsl 
libtool: link: /usr/share/src/gcc_build/./gcc/xgcc
-B/usr/share/src/gcc_build/./gcc/ -B/usr/local/i386-pc-solaris2.11/bin/
-B/usr/local/i386-pc-solaris2.11/lib/ -isystem
/usr/local/i386-pc-solaris2.11/include -isystem
/usr/local/i386-pc-solaris2.11/sys-include  -m64 -shared  .libs/gst_peer.o
.libs/gstreamer_io_peer.o .libs/gst_native_data_line.o .libs/gst_input_stream.o
.libs/gst_native_pipeline.o .libs/gst_classpath_src.o
../../../native/jni/classpath/.libs/jcl.o   -Wl,-rpath -Wl,/usr/X11/lib
-L/usr/X11/lib -lgstbase-0.10 -lgstreamer-0.10 -lgthread-2.0 -lpthread -lthread
-lxml2 -lgdk-x11-2.0 -lXi -lXext -lX11 -lgdk_pixbuf-2.0 -lm -lmlib
-lpangocairo-1.0 -lgio-2.0 -lfontconfig -lXrandr -lXcursor -lXcomposite
-lXdamage -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lXfixes
-lsocket -lnsl -lc  -m64 -m64 -m64   -Wl,-soname -Wl,libgstreamerpeer.so -o
.libs/libgstreamerpeer.so
/usr/local/bin/ld: skipping incompatible /usr/lib/libgstbase-0.10.so when
searching for -lgstbase-0.10
/usr/local/bin/ld: cannot find -lgstbase-0.10
collect2: ld returned 1 exit status
gmake[8]: *** [libgstreamerpeer.la] Error 1
gmake[8]: Leaving directory
`/usr/share/src/gcc_build/i386-pc-solaris2.11/amd64/libjava/classpath/native/jni/gstreamer-peer'
gmake[7]: *** [all-recursive] Error 1
gmake[7]: Leaving directory
`/usr/share/src/gcc_build/i386-pc-solaris2.11/amd64/libjava/classpath/native/jni'
gmake[6]: *** [all-recursive] Error 1
gmake[6]: Leaving directory
`/usr/share/src/gcc_build/i386-pc-solaris2.11/amd64/libjava/classpath/native'
gmake[5]: *** [all-recursive] Error 1
gmake[5]: Leaving directory
`/usr/share/src/gcc_build/i386-pc-solaris2.11/amd64/libjava/classpath'
gmake[4]: *** [all-recursive] Error 1
gmake[4]: Leaving directory
`/usr/share/src/gcc_build/i386-pc-solaris2.11/amd64/libjava'
gmake[3]: *** [multi-do] Error 1
gmake[3]: Leaving directory
`/usr/share/src/gcc_build/i386-pc-solaris2.11/libjava'
gmake[2]: *** [all-multi] Error 2
gmake[2]: Leaving directory
`/usr/share/src/gcc_build/i386-pc-solaris2.11/libjava'
gmake[1]: *** [all-target-libjava] Error 2
gmake[1]: Leaving directory `/usr/share/src/gcc_build'
gmake: *** [all] Error 2


Notice that the scripts get confused, look in the wrong place, and harass 'ld':

/usr/local/bin/ld: skipping incompatible /usr/lib/libgstbase-0.10.so when
searching for -lgstbase-0.10
/usr/local/bin/ld: cannot find -lgstbase-0.10


The ./configure sanity checks should always check if ONLY the 32-bit half
of a package is installed (without the 64-bit version) when compiling gcc
'multilib' in 32-bit mode (where 64-bit code can not be executed) and then
signal a dependancy error during the configury instead of waiting until 
'ld' ponders the misery that the errant scripts send it's way.

Rob


-- 
           Summary: [Regression] --enable-gstreamer-peer + multilib + 32 bit
                    boot = broken build
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Severity: major
          Priority: P3
         Component: bootstrap
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: rob1weld at aol dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38866


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2009-01-16  6:05 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-01-16  6:05 [Bug bootstrap/38866] New: [Regression] --enable-gstreamer-peer + multilib + 32 bit boot = broken build rob1weld at aol dot com

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).