[haiku-development] Re: building under Cygwin (windows)

  • From: "Urias McCullough" <umccullough@xxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Sat, 2 Jun 2007 18:09:06 -0700

On 5/30/07, Oliver Tappe <zooey@xxxxxxxxxxxxxxx> wrote:
Hi again,

On 2007-05-30 at 09:50:39 [+0200], Stefano Ceccherini
<stefano.ceccherini@xxxxxxxxx> wrote:
> 2007/5/30, Stefano Ceccherini <stefano.ceccherini@xxxxxxxxx>:
>
> Ok, I forgot I had some diffs from Urias, which after applied, made
> this problem go away.
> But the fs_shell still doesn't link, and ld now doesn't say anything useful:
>
> Link generated/objects/cygwin/lib/libroot_build.so
> Chmod1 generated/objects/cygwin/lib/libroot_build.so
> Link generated/objects/cygwin/x86/release/tools/bfs_shell/bfs_shell
> collect2: ld returned 1 exit status
>
> cc  -Xlinker --allow-multiple-definition -o
> "generated/objects/cygwin/x86/release/tools/bfs_shell/bfs_shell"
> "generated/objects/cygwin/x86/release/tools/bfs_shell/BlockAllocator.o"
> "generated/objects/cygwin/x86/release/tools/bfs_shell/BPlusTree.o"
> "generated/objects/cygwin/x86/release/tools/bfs_shell/Attribute.o"
> "generated/objects/cygwin/x86/release/tools/bfs_shell/Debug.o"
> "generated/objects/cygwin/x86/release/tools/bfs_shell/Index.o"
> "generated/objects/cygwin/x86/release/tools/bfs_shell/Inode.o"
> "generated/objects/cygwin/x86/release/tools/bfs_shell/Journal.o"
> "generated/objects/cygwin/x86/release/tools/bfs_shell/Query.o"
> "generated/objects/cygwin/x86/release/tools/bfs_shell/Utility.o"
> "generated/objects/cygwin/x86/release/tools/bfs_shell/Volume.o"
> "generated/objects/cygwin/x86/release/tools/bfs_shell/kernel_interface.o"
> "generated/objects/cygwin/x86/release/tools/fs_shell/fs_shell.a"
> "generated/objects/cygwin/lib/libroot_build.so" -lsupc++ -lstdc++  ;
>
> ...failed Link generated/objects/cygwin/x86/release/tools/bfs_shell/bfs_shell

Have you tried invoking cc manually with an added '-v -save-temps'? That should
give you the cmdline used for ld (or collect).
During my own porting efforts, invoking the individual tools manually (and
fiddling with their cmdline) often helped me to learn more about any such
problems.

Sorry to spam the dev list - but I'm hoping one of these messages
sparks a thought... from those who understand how all this works a lot
better than I do.

using "-v -save-temps" yields the following:

Reading specs from /usr/lib/gcc/i686-pc-cygwin/3.4.4/specs
Configured with:
/usr/build/package/orig/test.respin/gcc-3.4.4-3/configure --verbose
--prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --libdir=/usr/lib
--libexecdir=/usr/lib --mandir=/usr/share/man
--infodir=/usr/share/info
--enable-languages=c,ada,c++,d,f77,pascal,java,objc --enable-nls
--without-included-gettext --enable-version-specific-runtime-libs
--without-x --enable-libgcj --disable-java-awt --with-system-zlib
--enable-interpreter --disable-libgcj-debug --enable-threads=posix
--enable-java-gc=boehm --disable-win32-registry
--enable-sjlj-exceptions --enable-hash-synchronization
--enable-libstdcxx-debug
Thread model: posix
gcc version 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)
/usr/lib/gcc/i686-pc-cygwin/3.4.4/collect2.exe -Bdynamic
--dll-search-prefix=cyg -o
generated/objects/cygwin/x86/release/tools/bfs_shell/bfs_shell.exe
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../crt0.o
-L/usr/lib/gcc/i686-pc-cygwin/3.4.4
-L/usr/lib/gcc/i686-pc-cygwin/3.4.4
-L/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../..
--allow-multiple-definition
generated/objects/cygwin/x86/release/tools/bfs_shell/BlockAllocator.o
generated/objects/cygwin/x86/release/tools/bfs_shell/BPlusTree.o
generated/objects/cygwin/x86/release/tools/bfs_shell/Attribute.o
generated/objects/cygwin/x86/release/tools/bfs_shell/Debug.o
generated/objects/cygwin/x86/release/tools/bfs_shell/Index.o
generated/objects/cygwin/x86/release/tools/bfs_shell/Inode.o
generated/objects/cygwin/x86/release/tools/bfs_shell/Journal.o
generated/objects/cygwin/x86/release/tools/bfs_shell/Query.o
generated/objects/cygwin/x86/release/tools/bfs_shell/Utility.o
generated/objects/cygwin/x86/release/tools/bfs_shell/Volume.o
generated/objects/cygwin/x86/release/tools/bffs_shell/kernel_interface.o
generated/objects/cygwin/x86/release/tools/fs_shell/fs_shell.a
generated/objects/cygwin/lib/libroot_build.so -lsupc++ -lstdc++ -lgcc
-lcygwin -luser32 -lkernel32 -ladvapi32 -lshell32 -lgcc
collect2: ld returned 1 exit status

I can shorten it down to:

$ /usr/lib/gcc/i686-pc-cygwin/3.4.4/collect2.exe -Bdynamic
--dll-search-prefix=cyg -o
generated/objects/cygwin/x86/release/tools/bfs_shell/bfs_shell.
exe -L/usr/lib/gcc/i686-pc-cygwin/3.4.4 --allow-multiple-definition
generated/objects/cygwin/x86/release/tools/bfs_shell/BlockAllocator.o
generated/o
bjects/cygwin/x86/release/tools/bfs_shell/BPlusTree.o
generated/objects/cygwin/x86/release/tools/bfs_shell/Attribute.o
generated/objects/cygwin/x86/r
elease/tools/bfs_shell/Debug.o
generated/objects/cygwin/x86/release/tools/bfs_shell/Index.o
generated/objects/cygwin/x86/release/tools/bfs_shell/Inod
e.o generated/objects/cygwin/x86/release/tools/bfs_shell/Journal.o
generated/objects/cygwin/x86/release/tools/bfs_shell/Query.o
generated/objects/cyg
win/x86/release/tools/bfs_shell/Utility.o
generated/objects/cygwin/x86/release/tools/bfs_shell/Volume.o
generated/objects/cygwin/x86/release/tools/bf
s_shell/kernel_interface.o
generated/objects/cygwin/x86/release/tools/fs_shell/fs_shell.a
generated/objects/cygwin/lib/libroot_build.so -lsupc++ -lst
dc++ -lgcc -lcygwin

and it still chokes with the same useless error.

Other related posts: