#1006: Does not build on clang with GMP
-------------------------+--------------------------------------------------
 Reporter:  whiteknight  |       Owner:             
     Type:  bug          |      Status:  new        
 Priority:  minor        |   Milestone:             
Component:  build        |     Version:  1.5.0      
 Severity:  low          |    Keywords:  clang build
     Lang:               |       Patch:             
 Platform:               |  
-------------------------+--------------------------------------------------

Comment(by moritz):

 I used to observe a similar problem, which I described here:
 http://lists.parrot.org/pipermail/parrot-dev/2009-June/002407.html

 {{{
 src/pmc/bignum.o: In function `__gmpz_abs':
 /usr/include/gmp.h:1611: multiple definition of `__gmpz_abs'
 src/pmc/bigint.o:/usr/include/gmp.h:1611: first defined here
 src/pmc/bignum.o: In function `__gmpz_fits_uint_p':
 /usr/include/gmp.h:1637: multiple definition of `__gmpz_fits_uint_p'
 src/pmc/bigint.o:/usr/include/gmp.h:1637: first defined here
 src/pmc/bignum.o: In function `__gmpz_fits_ulong_p':
 /usr/include/gmp.h:1648: multiple definition of `__gmpz_fits_ulong_p'
 src/pmc/bigint.o:/usr/include/gmp.h:1648: first defined here
 src/pmc/bignum.o: In function `__gmpz_fits_ushort_p':
 ...
 collect2: ld returned 1 exit status
 make: *** [blib/lib/libparrot.so.1.3.0] Error 1
 }}}

 These days (with parrot-1.6.0 and a much newer clang) I get other linking
 errors, also related to gmp (which also go away with --without-gmp):

 {{{
 cc -shared -O2 -g -L/usr/local/lib -fPIC -L/usr/local/lib  -o
 blib/lib/libparrot.so.1.6.0 -Wl,-soname=libparrot.so.1.6.0 \
                 src/string/api.o src/ops/core_ops.o
 src/ops/core_ops_switch.o src/byteorder.o src/string/charset.o
 src/core_pmcs.o src/datatypes.o src/debug.o src/dynext.o src/embed.o
 src/string/encoding.o src/events.o src/exceptions.o src/exit.o
 src/extend.o src/extend_vtable.o src/gc/alloc_memory.o src/gc/api.o
 src/gc/gc_ms.o src/gc/gc_inf.o src/gc/mark_sweep.o src/gc/system.o
 src/global.o src/global_setup.o src/hash.o src/hll.o src/call/pcc.o
 src/interp/inter_cb.o src/interp/inter_create.o src/interp/inter_misc.o
 src/call/ops.o src/call/context.o src/key.o src/library.o src/list.o
 src/longopt.o src/misc.o src/multidispatch.o src/nci.o src/oo.o
 src/packfile.o src/packout.o src/platform.o src/pmc_freeze.o src/pmc.o
 src/runcore/main.o src/runcore/cores.o src/runcore/profiling.o
 src/scheduler.o src/spf_render.o src/spf_vtable.o src/string/primitives.o
 src/sub.o src/thread.o src/runcore/trace.o src/tsq.o src/utils.o
 src/vtables.o src/warnings.o src/packfile/pf_items.o src/ops/core_ops_cg.o
 src/ops/core_ops_cgp.o src/gc/alloc_resources.o
 src/string/charset/ascii.o src/string/charset/binary.o
 src/string/charset/iso-8859-1.o src/string/charset/tables.o
 src/string/charset/unicode.o src/io/core.o src/io/api.o src/io/utf8.o
 src/io/buffer.o src/io/unix.o src/io/win32.o src/io/portable.o
 src/io/filehandle.o src/io/socket_api.o src/io/socket_unix.o
 src/io/socket_win32.o src/pmc/default.o src/pmc/null.o src/pmc/env.o
 src/pmc/key.o src/pmc/unmanagedstruct.o src/pmc/managedstruct.o
 src/pmc/exception.o src/pmc/parrotlibrary.o src/pmc/parrotinterpreter.o
 src/pmc/parrotthread.o src/pmc/lexpad.o src/pmc/timer.o src/pmc/pointer.o
 src/pmc/sub.o src/pmc/continuation.o src/pmc/retcontinuation.o
 src/pmc/coroutine.o src/pmc/eval.o src/pmc/nci.o src/pmc/float.o
 src/pmc/integer.o src/pmc/bigint.o src/pmc/bignum.o src/pmc/complex.o
 src/pmc/string.o src/pmc/boolean.o src/pmc/array.o
 src/pmc/fixedintegerarray.o src/pmc/iterator.o src/pmc/fixedstringarray.o
 src/pmc/hash.o src/pmc/orderedhash.o src/pmc/os.o src/pmc/file.o
 src/pmc/addrregistry.o src/pmc/arrayiterator.o src/pmc/callsignature.o
 src/pmc/capture.o src/pmc/class.o src/pmc/codestring.o src/pmc/context.o
 src/pmc/cpointer.o src/pmc/eventhandler.o src/pmc/exceptionhandler.o
 src/pmc/exporter.o src/pmc/filehandle.o src/pmc/fixedbooleanarray.o
 src/pmc/fixedfloatarray.o src/pmc/fixedpmcarray.o src/pmc/handle.o
 src/pmc/hashiterator.o src/pmc/hashiteratorkey.o src/pmc/lexinfo.o
 src/pmc/multisub.o src/pmc/namespace.o src/pmc/object.o
 src/pmc/orderedhashiterator.o src/pmc/packfile.o
 src/pmc/packfileannotation.o src/pmc/packfileannotations.o
 src/pmc/packfileconstanttable.o src/pmc/packfiledirectory.o
 src/pmc/packfilefixupentry.o src/pmc/packfilefixuptable.o
 src/pmc/packfilerawsegment.o src/pmc/packfilesegment.o
 src/pmc/parrotrunningthread.o src/pmc/pccmethod_test.o src/pmc/pmcproxy.o
 src/pmc/resizablebooleanarray.o src/pmc/resizablefloatarray.o
 src/pmc/resizableintegerarray.o src/pmc/resizablepmcarray.o
 src/pmc/resizablestringarray.o src/pmc/role.o src/pmc/scalar.o
 src/pmc/scheduler.o src/pmc/schedulermessage.o src/pmc/sockaddr.o
 src/pmc/socket.o src/pmc/stringhandle.o src/pmc/stringiterator.o
 src/pmc/task.o src/pmc/undef.o src/string/encoding/fixed_8.o
 src/string/encoding/ucs2.o src/string/encoding/utf16.o
 src/string/encoding/utf8.o compilers/imcc/imcparser.o
 compilers/imcc/imclexer.o compilers/imcc/imc.o compilers/imcc/main.o
 compilers/imcc/symreg.o compilers/imcc/instructions.o compilers/imcc/cfg.o
 compilers/imcc/reg_alloc.o compilers/imcc/sets.o compilers/imcc/debug.o
 compilers/imcc/optimizer.o compilers/imcc/pbc.o
 compilers/imcc/parser_util.o compilers/imcc/pcc.o -ldl -lm -lpthread
 -lcrypt -lrt -lgmp -lreadline  -lm -L/usr/lib  -licuuc -licudata -lm
 : blib/lib/libparrot.a
 /usr/bin/ld: src/pmc/bigint.o: relocation R_X86_64_PC32 against
 `__gmpz_neg' can not be used when making a shared object; recompile with
 -fPIC
 /usr/bin/ld: final link failed: Bad value
 collect2: ld returned 1 exit status
 make: *** [blib/lib/libparrot.so.1.6.0] Error 1
 }}}

 Cheers,
 Moritz

-- 
Ticket URL: <https://trac.parrot.org/parrot/ticket/1006#comment:2>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets

Reply via email to