#312: disable static on win32 if shared
----------------------+-----------------------------------------------------
Reporter: rurban | Owner: rurban
Type: bug | Status: new
Priority: critical | Milestone: 1.0
Component: none | Version: trunk
Severity: medium | Keywords:
Lang: | Patch: new
Platform: win32 |
----------------------+-----------------------------------------------------
Having a static and shared libparrot together will lead to unnecessary and
very hard to detect conflicts, esp. when being installed together later in
the same directory.
On building we seperated them so far into build_dir and blib_dir, but when
I moved it together to test make install it lead to TT #276, when parrot
picked up the static lib, but the dynamic dynpmc and dynoplibs did not
initialize the charset.
So my proposal is:
* disable static on win32 per default, (check if shared, and disable
static then)[BR]]
* or rename it to something unique (libparrots.lib)[BR]]
* or move it to blib/lib but set blib_dir to . (the current patch I
posted)[BR]]
Unless --enable-static is requested, embedders or single file
solutions might want it.[BR]]
* provide --enable-static or --disable-shared Configure.pl options
Details how it worked before:
-W,lblib/lib -lparrot uses the libpath search to find
blib/lib/libparrot.lib (the importlib) which finds libparrot.dll (same
path as exe).[[BR]]
The dll must reside near the exe unless rpath enabled unices, otherwise we
would need a SHRPENV=blib/lib:$PATH macro on every exe invocation during
all makefiles. alison didn't like that (perl5 uses that approach), so I
moved the dll to the build_dir and everything is fine, even with already
installed libparrot.dll.
But libparrot.lib (or .a) the static lib is also there and will confuse
the libpath search when being installed, because then we have a conflict,
because the static lib will be found before the importlib, esp. on
installed packages.
So I switched locations, moved the static lib to blib/lib and removed the
blibdir from the linker libpath (effectively ignoring it). That's when
TT#276 appeared.
--
Ticket URL: <https://trac.parrot.org/parrot/ticket/312>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets