Closed p5pRT closed 21 years ago
[resend: bounced at defender.perl.org wih this lot last time:
RFgen::logg(Initial: [12884] (/home/richard/bugs/logs/pb_19990609) /home/richard/bugs/scripts/tm_mailproc.pl set) can't open today's log (/home/richard/bugs/logs/pb_19990609)! Permission denied at /home/richard/site_perl/RFgen.pm line 193\, \
When I attempt to use perlcc to compile any Perl program\, the diagnostic output includes many line-pairs of the type
No definition for sub Fcntl::F_DUPFD No definition for sub Fcntl::F_DUPFD (unable to autoload)
Further\, if I attempt to compile a program that uses some module with an XS component (for example\, Socket)\, the output includes more warnings relating to that module:
No definition for sub Socket::MSG_PROXY No definition for sub Socket::MSG_PROXY (unable to autoload)
and so on.
On reaching the link stage\, ld complains
/tmp/cc0004921.o(.rw+0xcf70):t.p.c: undefined reference to `XS_Fcntl_constant'
and maybe
t2.p.o(.rw+0x12ade):t2.p.c: undefined reference to `XS_Socket_pack_sockaddr_in'
and so on\, and produces no executable.
A hacky way round this is to rerun the cc command line produced by perlcc\, but adding the relevant module library names (such as /usr/local/lib/perl5/5.00557/powerpc-machten/auto/Fcntl/Fcntl.a) after -lperl. This produces working output.
Looking at B/C.pm\, I see the warnings are coming from and try_autoload() and B::CV::save(). But I don't know where to start in persuading these functions to add the relevant static library to the cc command line (if it hasn't already been added) on encountering an external function instead of doing whatever it is that they do now in order to get a dynamic library to satisfy the reference. (Or I suppose you could just add all installed module libraries unconditionally\, as makemaker does.)
Anyone else seen a duplicate of this problem? I'm building a static installation to test.
Nat
When I attempt to use perlcc to compile any Perl program\, the diagnostic output includes many line-pairs of the type
No definition for sub Fcntl::F_DUPFD No definition for sub Fcntl::F_DUPFD (unable to autoload)
Further\, if I attempt to compile a program that uses some module with an XS component (for example\, Socket)\, the output includes more warnings relating to that module:
No definition for sub Socket::MSG_PROXY No definition for sub Socket::MSG_PROXY (unable to autoload)
and so on.
At 21:55 -0700 2000-03-20\, Nathan Torkington wrote:
When I attempt to use perlcc to compile any Perl program\, the diagnostic output includes many line-pairs of the type
No definition for sub Fcntl::F_DUPFD No definition for sub Fcntl::F_DUPFD (unable to autoload)
Anyone else seen a duplicate of this problem? I'm building a static installation to test.
Yes\, I see that too. (Static build of RC2 for MachTen 4.1.4.) Byte code compile works\, FWIW. No time to investigate just now. -- Dominic Dunlop
This ticket\, against 5.005_57\, can be closed: bleadperl perlcc now des\, er does\, work on MachTen\, a statically-linked system. (Doesn't on 5.6.0\, however -- but 5.6.0 perlcc's pretty broken in general I believe.)
Migrated from rt.perl.org#854 (status was 'resolved')
Searchable as RT854$