#30: make shared libparrot with an already installed shared libparrot
----------------------+-----------------------------------------------------
Reporter: rurban | Owner: rurban
Type: bug | Status: new
Priority: critical | Milestone: 0.9.0
Component: install | Version: branch
Severity: medium | Keywords:
Lang: | Patch: new
Platform: all |
----------------------+-----------------------------------------------------
(migrated from RT 39742)
The reason for the problem to make shared libparrot with an already
installed
shared libparrot is simple and has several reasons:
1. libs belongs to the end.
first LDFLAGS, then LD_LOAD_FLAGS, then libparrot,
then LIBS + EXTRALIBS.
dynpmc got this wrong.
It had LIBS at the front.
a. One should not put libs before the LDFLAGS.
b. One should reverse the LIBS line in order of dependencies.
We have the problem that the libs line is generated automatically
and may contain -L/usr/lib (pulled in from libicu) and
-L/usr/local/lib,
so the already installed -lparrot will be found.
So our -Lblib/lib should be at the front, best in LDFLAGS.
Note that parrot.pc got that right:
Libs: -L${libdir} -lparrot @icu_shared@ @libs@
2. remove the perl5 -L/usr/local/lib LDFLAGS which would pull in
a shared /usr/local/lib/libparrot.so before checking -Lblib/lib
-lparrot.
One fix could be to check this in Configure and move all -L from LDFLAGS
to the LIBS flag at the front. I went this way for unices, and explicitly
for win.
The other fix would be to explicitly link to blib/lib/libparrot.so,
without -L path hacks.
3. Now an already installed libparrot.dll/.so does not conflict with make
anymore.
The remaining problem is at make installable esp. for the languages
and already installed /usr/lib/parrot, /usr/include/parrot and
/usr/lib/libparrot.dll.a
This patch adds PATH resp. LD_RUN_PATH to the parrot invocations, similar
as in perl5.
It moves a -L<path> from @ldflags@ to @libs@ in config.
It also adds emacs/vim modes to the Makefiles.
It also adds Makefile targets to regenerate the Makefiles automatically.
--
Ticket URL: <https://trac.parrot.org/parrot/ticket/30>
Parrot <http://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets