-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hello
This is the first time I'm mailing to this list, so I hope I have come to the right place. The problem I have is that I get a linker error when compiling a shared library with GHC. This problem occurred after I updated GHC from 7.0.3 to 7.4.1. Here is the error itself: /usr/bin/ld: ../src/Shared.so relocation R_X86_64_32S against `ghczmprim_GHCziTypes_ZC_con_info` can not be used when making a shared object; recompile with -fPIC ../src/Shared.so: could not read symbols: Bad value collect2: error: ld returned 1 exit status Here is the ghc command: ghc -O2 --make -no-hs-main -optl '-shared' -optc '-DMODULE=Shared' - - -o ../bin/pet_assembler_core.so Shared ../src/shared/module_init.c - - -i../src/; Shared.hs is the file where I specify the interface for the library, it only has one function: 1 {-# LANGUAGE ForeignFunctionInterface #-} 2 3 module Shared where 4 5 import qualified Data.ByteString as BS 6 import Foreign.Ptr (Ptr) 7 import Foreign.Storable (poke) 8 import Foreign.Marshal.Utils (copyBytes) 9 import Foreign.Marshal.Alloc (mallocBytes) 10 import Foreign.C.Types (CSize, CChar) 11 import Foreign.C.String 12 import Data.ByteString.Unsafe (unsafeUseAsCStringLen) 13 import Assembly.Data 14 import qualified Assembly as ASM 15 16 type PPString = Ptr (Ptr CChar) 17 type PSize = Ptr CSize 18 19 foreign export ccall assemble :: PPString -> PSize -> CString -> IO Int And the module_init.c contains initialization of the module: 1 #define CAT(a,b) XCAT(a,b) 2 #define XCAT(a,b) a ## b 3 #define STR(a) XSTR(a) 4 #define XSTR(a) #a 5 6 #include <HsFFI.h> 7 8 extern void CAT(__stginit_, MODULE)(void); 9 10 static void library_init(void) __attribute__((constructor)); 11 static void library_init(void) 12 { 13 static char *argv[] = { STR(MODULE) ".so", 0 }, **argv_ = argv; 14 static int argc = 1; 15 16 hs_init(&argc, &argv_); 17 hs_add_root(CAT(__stginit_, MODULE)); 18 } 19 20 static void library_exit(void) __attribute__((destructor)); 21 static void library_exit(void) 22 { 23 hs_exit(); 24 } Information about the system: Linux 2.6.32-5-amd64 Debian 6.0.6 GHC 7.4.1 GCC 4.7.2 GNU ld 2.22 So the question is, what could it be? Have I missed something? Or should I report this as a bug? Best regards Richard Zetterberg -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.17 (Darwin) Comment: GPGTools - http://gpgtools.org Comment: Using GnuPG with Mozilla - http://www.enigmail.net/ iQIcBAEBAgAGBQJQfA6/AAoJEP99n2Mvs+maKp4P/iznMCLd73Os0tOarCHcyiK4 b96Zi1ibD5jqiojAWseoX3xCj4uNKIGy20GzDKRS5gZi3rXkw+wuCyLfj/RetrbN 8sy3RNVpbNulwRn/0HnFDOINpAOlO/y+6l45YcfhTSJGRCR0Hv7yhhlHbcyezZ+G i4UORXygc2TnCVL1Vc0RdmmPOAehfmla1oo1bwmmQ6l6hhdrHJpo0jVukN+Dy+qv enGF4Z9IMVjtgZizmEHmFA9UbMpKDDCXHKTsCSliSKErx4ebz0VeEkCCXWXE9c5M 0sUkAmDkiV8+CJ+RPJBMjIDihuothQ4Hpt2ZWBXo6I4D7J9MkkW8Qe9kmwvzLQQO d7+w2qsHkI9x3bSnH6D3Co+crgqUnHf2OGDI8Hhbc2Ra82wcobCxHyxNWWAa8P07 q3/cu9xNDceTRnJ0tx9R2e9qByp5+eOAhtabNcX3yTsWWKSD2P0FNC2sjxMH/Psz mWIDAiFfOGrKRAilm3CxokeX5k+tPMP+piU3b2WNPEJHaS/Hgl9Xl4eHi/DRnzJ7 9Fu09ynoB3yllPyIzLijXdOrwaTt7qWwxt48D1TwX+hl7CRxwOCFJKXyeZoRiSTc D+Lbts5ST5skqnRHiQNxdrCODCvGoLhUJTDHEyVm3b9fFstkpR7tQc3nVywJ9DFH p9Sh9UdEAc9a1URkCXS4 =ZU3J -----END PGP SIGNATURE----- _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users