Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[perl #39742] [BUG] installed parrot conflicts with dev parrot.

7 views
Skip to first unread message

Will Coleda

unread,
Jul 6, 2006, 3:03:54 PM7/6/06
to bugs-bi...@rt.perl.org
# New Ticket Created by Will Coleda
# Please include the string: [perl #39742]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=39742 >


The development version of parrot should not be detecting or
interacting with the installed (/usr/local, e.g.) versions at all.

The fact that there is interference here currently means you *can't*
have an installed parrot if you are also working out of the source.

Regards.

--
Will Coleda
wco...@tello.com
1.650.581.2414

Leopold Toetsch

unread,
Dec 19, 2006, 5:12:05 PM12/19/06
to parrotbug...@parrotcode.org
Am Sonntag, 17. Dezember 2006 09:45 schrieb chromatic via RT:
> garaud and I hope to have fixed this as of r16139, though he still has
> some dynext and dynpmc failures on his FreeBSD 6.2-tobe box.
>
> Can anyone still confirm?

This issue is looking much like a BSD linker options thingy to me. I could
never verify this ticket on linux.

leo

David Landgren

unread,
Dec 20, 2006, 3:53:53 PM12/20/06
to parrotbug...@parrotcode.org, wi...@coleda.com
chromatic via RT did write:
> garaud and I hope to have fixed this as of r16139, though he still has
> some dynext and dynpmc failures on his FreeBSD 6.2-tobe box.
>
> Can anyone still confirm?

Let me have a look and I'll get back to you.

David
--
"It's overkill of course, but you can never have too much overkill."

David Landgren

unread,
Dec 20, 2006, 5:27:45 PM12/20/06
to parrotbug...@parrotcode.org, wi...@coleda.com
chromatic via RT did write:
> garaud and I hope to have fixed this as of r16139, though he still has
> some dynext and dynpmc failures on his FreeBSD 6.2-tobe box.
>
> Can anyone still confirm?

I just synched to 16207, but the test suite produces the following:

Failed Test Stat Wstat Total Fail List of Failed
-------------------------------------------------------------------------------
t/codingstd/c_code_coda.t 1 256 2 1 1
t/codingstd/tabs.t 1 256 1 1 1
t/codingstd/trailing_space.t 1 256 1 1 1
t/src/basic.t 1 256 3 1 3
t/src/compiler.t 6 1536 6 6 1-6
t/src/exit.t 1 256 1 1 1
t/src/extend.t 15 3840 15 15 1-15
t/src/hash.t 11 2816 11 11 1-11
t/src/intlist.t 1 256 4 1 1
t/src/io.t 20 5120 20 20 1-20
t/src/list.t 2 512 2 2 1-2
t/src/sprintf.t 2 512 3 2 1-2
t/src/string.t 2 512 3 2 2-3
(1 subtest UNEXPECTEDLY SUCCEEDED), 8 tests and 591 subtests skipped.
Failed 13/266 test scripts. 64/6808 subtests failed.
Files=266, Tests=6808, 2280 wallclock secs (867.71 cusr + 264.75 csys =
1132.46 CPU)
Failed 13/266 test programs. 64/6808 subtests failed.

Can't install it, either.

david@profane:/home/perl/src/parrot% sudo make reallyinstall
Password:
make installable
Compiling with:
xx.c
cc -I./include -DAPPLLIB_EXP=/usr/local/lib/perl5/5.8.8/BSDPAN
-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -pipe
-Wdeclaration-after-statement -I/usr/local/include -g -W -Wall
-Wstrict-prototypes -Wmissing-prototypes -Winline -Wshadow
-Wpointer-arith -Wcast-qual -Wwrite-strings -Waggregate-return -Winline
-Wno-unused -Wsign-compare -falign-functions=16 -Wformat-nonliteral
-Wformat-security -Wpacked -Wdisabled-optimization
-mno-accumulate-outgoing-args -Wno-shadow -DHAS_JIT -DI386
-DHAVE_COMPUTED_GOTO -DPIC -fPIC -I. -o xx.o -c xx.c
perl -e 'chdir shift @ARGV; system q{make}, @ARGV; exit $? >> 8;' docs
perl -MExtUtils::Command -e mkpath ops
perl -e 'chdir shift @ARGV; system q{make}, @ARGV; exit $? >> 8;' src/dynpmc
perl -e 'chdir shift @ARGV; system q{make}, @ARGV; exit $? >> 8;'
src/dynoplibs
perl -e 'chdir shift @ARGV; system q{make}, @ARGV; exit $? >> 8;'
compilers/past
perl -e 'chdir shift @ARGV; system q{make}, @ARGV; exit $? >> 8;'
compilers/pge
cd PGE/pmc && perl /home/perl/src/parrot/tools/build/dynpmc.pl generate
codestring
cd PGE/pmc && perl /home/perl/src/parrot/tools/build/dynpmc.pl compile
codestring
cd PGE/pmc && perl /home/perl/src/parrot/tools/build/dynpmc.pl linklibs
codestring
cd PGE/pmc && perl /home/perl/src/parrot/tools/build/dynpmc.pl copy
--destination=/home/perl/src/parrot/runtime/parrot/dynext codestring
perl -e 'chdir shift @ARGV; system q{make}, @ARGV; exit $? >> 8;'
compilers/tge
perl -e 'chdir shift @ARGV; system q{make}, @ARGV; exit $? >> 8;'
compilers/past-pm
perl -e 'chdir shift @ARGV; system q{make}, @ARGV; exit $? >> 8;'
compilers/json
Invoking Parrot to generate install_config.fpmc
./parrot config_lib.pasm --install > install_config.fpmc
perl tools/build/parrot_config_c.pl --install > src/install_config.c
src/install_config.c
g++ -o ./installable_parrot compilers/imcc/main.o
-L/home/perl/src/parrot/blib/lib -lparrot -lm -lcrypt -lutil -pthread
-lgmp -lreadline -Wl,-E -L/usr/local/lib src/install_config.o
src/pdump.c
src/packdump.c
g++ -o ./installable_pdump src/pdump.o src/packdump.o
-L/home/perl/src/parrot/blib/lib -lparrot -lm -lcrypt -lutil -pthread
-lgmp -lreadline -Wl,-E -L/usr/local/lib
src/disassemble.c
g++ -o ./installable_disassemble src/disassemble.o
-L/home/perl/src/parrot/blib/lib -lparrot -lm -lcrypt -lutil -pthread
-lgmp -lreadline -Wl,-E -L/usr/local/lib
src/pbc_info.c
g++ -o ./installable_pbc_info src/pbc_info.o
-L/home/perl/src/parrot/blib/lib -lparrot -lm -lcrypt -lutil -pthread
-lgmp -lreadline -Wl,-E -L/usr/local/lib
src/pdb.c
src/pdb.c: In function `main':
src/pdb.c:153: warning: implicit declaration of function `IMCC_ast_init'
g++ -o ./installable_pdb src/pdb.o -L/home/perl/src/parrot/blib/lib
-lparrot -lm -lcrypt -lutil -pthread -lgmp -lreadline -Wl,-E
-L/usr/local/lib
src/pdb.o(.text+0xaa): In function `main':
src/pdb.c:153: undefined reference to `IMCC_ast_init'
*** Error code 1

Stop in /home/perl/src/parrot.
*** Error code 1

Stop in /home/perl/src/parrot.

All of the above was preceded by a 'make distclean' followed by a 'perl
Configure.pl'.

Feel free to holler if you want some more info.

Thanks,

James Keenan via RT

unread,
Jun 14, 2008, 8:21:57 PM6/14/08
to perl6-i...@perl.org
Can we get an update as to the issues raised in this ticket?

Thank you very much.

kid51

Andy Dougherty

unread,
Jun 16, 2008, 10:04:24 AM6/16/08
to James Keenan via RT
On Sat, 14 Jun 2008, James Keenan via RT wrote:

> Can we get an update as to the issues raised in this ticket?

The general issue

"installeld parrot conflicts with dev parrot"
-- at least when a shared libparrot.so is used

is, as far as I know, unsolved. A longer discussion can be found here
(and the surrounding thread):

http://www.nntp.perl.org/group/perl.perl6.internals/2006/03/msg33340.html

--
Andy Dougherty doug...@lafayette.edu

Reini Urban

unread,
Aug 2, 2008, 8:21:47 AM8/2/08
to Andy Dougherty, James Keenan via RT
Andy Dougherty schrieb:

It should be added that this does not affect cygwin and mingw.
just shared a libparrot.so

It is still true that
gcc ... -L/usr/local/lib ... -L.../blib/lib -lparrot -L/usr/local/lib
-lgmp -lreadline
would prefer a /usr/local/lib/libparrot.dll.a if there would be some,
(there is even a /usr/lib/libparrot.dll.a)
but the nature of this import lib is affected by PATH,
which is so constructed that blib/lib prepends the installed libparrot.

Just the perl5 ldflags setting have to fixed in the config hints step.
-L/usr/local/lib can be stripped at all, if some parrot lib pulls that
in. If not it has to be put after -lparrot.

--
Reini Urban
http://phpwiki.org/ http://murbreak.at/

Reini Urban

unread,
Aug 3, 2008, 10:16:52 AM8/3/08
to James Keenan via RT, Andy Dougherty, Parrot Porters
Reini Urban schrieb:

With the recent merge which changed the exception handling,
I was able to reproduce and fix the problem not being able to compile a
fresh parrot with an already installed shared libparrot.
So my previous comment was wrong.

The reason for the problem is simple and two-fold:
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.

The other fix would be to explicitly link to blib/lib/libparrot.so,
without path hacks, which could be easily fooled.

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.

There's still some problem though with this env PATH=blib/lib prefix,
which looks weird and is very likely and unrelated.

./parrot.exe -o runtime/parrot/include/parrotlib.pbc \
runtime/parrot/library/parrotlib.pir

Parrot VM: PANIC: Out of mem!
C file src/gc/memory.c, line 137
Parrot file (not available), line (not available)

39742-installed-conflict.patch
0 new messages