[Yhc] build on x86-64 fails with undefined references

Kartik Vaddadi itskartik at iitb.ac.in
Thu Sep 14 01:40:24 EDT 2006


Hello,
I have a 32-bit distro (Kubuntu 6.10) running on a 64-bit kernel. The yhc 
build fails with 'undefined reference' errors.

> scons: Reading SConscript files ...
> Checking for architecture... x86_64
> Checking for operating system... linux2
> Bootstrapping...
> Done.
> scons: done reading SConscript files.
> scons: Building targets ...
> gcc -o inst/bin/yhi src/runtime/BCKernel/sanity.o
> src/runtime/BCKernel/info.o src/runtime/BCKernel/iofuncs.o
> src/runtime/BCKernel/external.o src/runtime/BCKernel/profile.o
> src/runtime/BCKernel/integer.o src/runtime/BCKernel/hsffi.o
> src/runtime/BCKernel/foreign.o src/runtime/BCKernel/jonkers.o
> src/runtime/BCKernel/mutator.o src/runtime/BCKernel/process.o
> src/runtime/BCKernel/stable.o src/runtime/BCKernel/module.o
> src/runtime/BCKernel/primitive.o src/runtime/BCKernel/main.o
> src/runtime/BCKernel/hashtable.o src/runtime/BCKernel/pretty.o
> src/runtime/BCKernel/thread.o src/runtime/BCKernel/stopcopy.o
> src/runtime/BCKernel/make.o src/runtime/BCKernel/mark.o
> src/runtime/BCKernel/heap.o src/runtime/BCKernel/builtin/Array.o
> src/runtime/BCKernel/builtin/IO.o src/runtime/BCKernel/builtin/Prelude.o
> src/runtime/BCKernel/builtin/FFI.o
> src/runtime/BCKernel/builtin/RuntimeAPI.o
> src/runtime/BCKernel/builtin/Concurrent.o
> src/runtime/BCKernel/builtin/System.o
> src/runtime/BCKernel/builtin/PackedString.o
> depends/ctypes/libffi/src/prep_cif.o depends/ctypes/libffi/src/cfield.o
> depends/ctypes/libffi/src/x86/ffi64.o
> depends/ctypes/libffi/src/x86/unix64.o depends/ctypes/libffi/src/x86/sysv.o
> -L/usr/local/lib -lgmp -lm -lpthread -ldl src/runtime/BCKernel/hsffi.o: In
> function `hsffi_call':hsffi.c:(.text+0x3a1): undefined reference to
> `ffi_call' src/runtime/BCKernel/hsffi.o: In function
> `hsffi_evalContext':hsffi.c:(.text+0x439): undefined reference to
> `ffi_call' depends/ctypes/libffi/src/prep_cif.o: In function
> `ffi_prep_cif':prep_cif.c:(.text+0x20c): undefined reference to
> `ffi_prep_cif_machdep' depends/ctypes/libffi/src/x86/sysv.o: In function
> `ffi_closure_SYSV':depends/ctypes/libffi/src/x86/sysv.S:(.text+0x8a):
> undefined reference to `ffi_closure_SYSV_inner' collect2: ld returned 1
> exit status
> scons: *** [inst/bin/yhi] Error 1
> scons: building terminated because of errors.

I replaced uname (in /bin) with a version that prints "i386" for the 
architecture rather than "x86_64", and the build succeeds, with warnings 
(some ffi-related).

But I'm not sure if my uname hack is a good idea (could it break builds of 
other software?)

Does yhc support 64-bit architectures? And since my distribution is 32-bit, 
will a 64-bit binary run at all?

Do you advise me to use a 32-bit kernel with yhc? Thanks a lot.

-- 
Kartik Vaddadi.

Home: 			www.cse.iitb.ac.in/~kart
Blogs:                  kartik.infogami.com, kartik-log.blogspot.com, 
kartik-rlog.blogspot.com
Alternate mail ID:	kartik.vad at gmail.com

"50% Reservation, 100% Politics" - Protest the Indian government's decision to 
increase reservation in private educational institutions 
(yfemumbai.blogspot.com)


More information about the Yhc mailing list