Bug#750837: ITP: moarvm -- virtual machine for Rakudo Perl 6 and NQP

Daniel Dehennin daniel.dehennin at baby-gnu.org
Mon Mar 16 22:51:58 UTC 2015


gregor herrmann <gregoa at debian.org> writes:


[...]

>> > Yup, looks like the *FLAGS are ignored.
>
> I looked into this now, see the attached patch series.
> (Not perfect but a starting point.)

5 days ago it was half fixed upstream[1], today it's fully fixed[2].

I tested them and I need to disable PIE or I have this issue:

#+begin_src
gcc -o libmoar.so -O2 -DNDEBUG -g3 -Wl,-rpath,/usr/lib/moar -fPIE -pie -Wl,-z,relro -Wl,-z,now -shared -fPIC  src/core/callsite.o src/core/args.o src/core/exceptions.o src/core/interp.o src/core/threadcontext.o src/core/compunit.o src/core/bytecode.o src/core/frame.o src/core/validation.o src/core/bytecodedump.o src/core/threads.o src/core/ops.o src/core/hll.o src/core/loadbytecode.o src/math/num.o src/core/coerce.o src/core/dll.o src/core/ext.o src/core/nativecall.o src/core/continuation.o src/core/intcache.o src/core/fixedsizealloc.o src/gen/config.o src/gc/orchestrate.o src/gc/allocation.o src/gc/worklist.o src/gc/roots.o src/gc/collect.o src/gc/gen2.o src/gc/wb.o src/gc/objectid.o src/gc/finalize.o src/io/io.o src/io/eventloop.o src/io/syncfile.o src/io/syncstream.o src/io/syncpipe.o src/io/syncsocket.o src/io/fileops.o src/io/dirops.o src/io/procops.o src/io/timers.o src/io/filewatchers.o src/io/signals.o src/io/asyncsocket.o src/6model/reprs.o src/6model/reprconv.o src/6model/containers.o src/6model/parametric.o src/6model/reprs/MVMString.o src/6model/reprs/MVMArray.o src/6model/reprs/MVMHash.o src/6model/reprs/MVMCFunction.o src/6model/reprs/KnowHOWREPR.o src/6model/reprs/KnowHOWAttributeREPR.o src/6model/reprs/P6str.o src/6model/reprs/P6opaque.o src/6model/reprs/MVMCode.o src/6model/reprs/MVMOSHandle.o src/6model/reprs/MVMCompUnit.o src/6model/reprs/MVMStaticFrame.o src/6model/reprs/P6int.o src/6model/reprs/P6num.o src/6model/reprs/Uninstantiable.o src/6model/reprs/HashAttrStore.o src/6model/reprs/MVMThread.o src/6model/reprs/MVMIter.o src/6model/reprs/MVMContext.o src/6model/reprs/SCRef.o src/6model/reprs/Lexotic.o src/6model/reprs/MVMCallCapture.o src/6model/reprs/P6bigint.o src/6model/reprs/NFA.o src/6model/reprs/MVMException.o src/6model/reprs/MVMDLLSym.o src/6model/reprs/MVMMultiCache.o src/6model/reprs/MVMContinuation.o src/6model/reprs/NativeCall.o src/6model/reprs/CPointer.o src/6model/reprs/CStr.o src/6model/reprs/CArray.o src/6model/reprs/CStruct.o src/6model/reprs/ReentrantMutex.o src/6model/reprs/ConditionVariable.o src/6model/reprs/Semaphore.o src/6model/reprs/ConcBlockingQueue.o src/6model/reprs/MVMAsyncTask.o src/6model/reprs/MVMNull.o src/6model/reprs/NativeRef.o src/6model/6model.o src/6model/bootstrap.o src/6model/sc.o src/6model/serialization.o src/mast/compiler.o src/mast/driver.o src/spesh/dump.o src/spesh/graph.o src/spesh/codegen.o src/spesh/candidate.o src/spesh/manipulate.o src/spesh/args.o src/spesh/facts.o src/spesh/optimize.o src/spesh/deopt.o src/spesh/log.o src/spesh/threshold.o src/spesh/inline.o src/spesh/osr.o src/jit/graph.o src/jit/compile.o src/jit/log.o src/strings/decode_stream.o src/strings/ascii.o src/strings/utf8.o src/strings/ops.o src/strings/unicode.o src/strings/latin1.o src/strings/utf16.o src/strings/windows1252.o src/math/bigintops.o src/profiler/instrument.o src/profiler/log.o src/profiler/profile.o src/moar.o src/platform/posix/mmap.o src/platform/posix/time.o src/platform/posix/sys.o src/jit/emit_posix_x64.o 3rdparty/tinymt/libtinymt.a 3rdparty/libuv/libuv.a 3rdparty/dyncall/dyncall/libdyncall_s.a 3rdparty/sha1/libsha1.a 3rdparty/dyncall/dynload/libdynload_s.a 3rdparty/linenoise/liblinenoise.a 3rdparty/libtommath/libtommath.a 3rdparty/dyncall/dyncallback/libdyncallback_s.a -ltommath -latomic_ops -lm -lpthread -lrt -ldl
/usr/bin/ld.bfd.real: 3rdparty/dyncall/dyncall/libdyncall_s.a(dyncall_callvm.o): relocation R_X86_64_PC32 against symbol `gVT_x64' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld.bfd.real: final link failed: Bad value
collect2: error: ld returned 1 exit status
Makefile:484: recipe for target 'libmoar.so' failed
make[2]: *** [libmoar.so] Error 1
make[2]: Leaving directory '/build/moarvm-QgLiKc/moarvm-2015.02'
dh_auto_build: make -j1 NOISY=1 returned exit code 2
debian/rules:37: recipe for target 'override_dh_auto_build' failed
make[1]: *** [override_dh_auto_build] Error 2
make[1]: Leaving directory '/build/moarvm-QgLiKc/moarvm-2015.02'
debian/rules:26: recipe for target 'binary' failed
make: *** [binary] Error 2
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2
#+end_src

Regards.

Footnotes: 
[1]  https://github.com/MoarVM/MoarVM/commit/09393586b6207b5aafd0067fc6f6ee339b7d3ff4

[2]  https://github.com/MoarVM/MoarVM/issues/187

-- 
Daniel Dehennin
Récupérer ma clef GPG: gpg --recv-keys 0xCC1E9E5B7A6FE2DF
Fingerprint: 3E69 014E 5C23 50E8 9ED6  2AAD CC1E 9E5B 7A6F E2DF
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 342 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-rakudo-devel/attachments/20150316/0b346378/attachment.sig>


More information about the Pkg-rakudo-devel mailing list