develooper Front page | perl.perl5.porters | Postings from June 2013

Re: dmake can't find config.h, and collector throws error when tryingto compile perl-static.exe (perl-5.18.0 / mingw / 32b)

Thread Previous | Thread Next
From:
kmx
Date:
June 3, 2013 12:58
Subject:
Re: dmake can't find config.h, and collector throws error when tryingto compile perl-static.exe (perl-5.18.0 / mingw / 32b)
Message ID:
51AC92CE.6040207@atlas.cz

On 3.6.2013 9:59, Steve Hay wrote:
> On 02 June 2013 14:05, Leon Timmermans <fawaka@gmail.com>wrote:
>> On Jun 2, 2013 2:16 PM, <sisyphus1@optusnet.com.au> wrote:
>>> It's a bit odd. I see in the build process:
>>>
>>> ar rc  ..\libperl518s.a \
>>>         ..\lib\auto\B\B.a ..\lib\auto\Compress\Raw\Bzip2\Bzip2.a ..\lib\auto\Compress\Raw\Zlib\Zlib.a ..\lib\auto\Cwd\Cwd.a ..\lib\auto\Data\Dumper\Dumper.a ..\lib\auto\Devel\PPPort\PPPort.a ..\lib\auto\Devel\Peek\Peek.a ..\lib\auto\Digest\MD5\MD5.a ..\lib\auto\Digest\SHA\SHA.a ..\lib\auto\Fcntl\Fcntl.a ..\lib\auto\File\DosGlob\DosGlob.a ..\lib\auto\File\Glob\Glob.a ..\lib\auto\Filter\Util\Call\Call.a ..\lib\auto\Hash\Util\Util.a ..\lib\auto\Hash\Util\FieldHash\FieldHash.a ..\lib\auto\IO\IO.a ..\lib\auto\List\Util\Util.a ..\lib\auto\MIME\Base64\Base64.a ..\lib\auto\Math\BigInt\FastCalc\FastCalc.a ..\lib\auto\Opcode\Opcode.a ..\lib\auto\POSIX\POSIX.a ..\lib\auto\PerlIO\encoding\encoding.a ..\lib\auto\PerlIO\mmap\mmap.a ..\lib\auto\PerlIO\scalar\scalar.a ..\lib\auto\PerlIO\via\via.a ..\lib\auto\Socket\Socket.a ..\lib\auto\Storable\Storable.a ..\lib\auto\Sys\Hostname\Hostname.a ..\lib\auto\Text\Soundex\Soundex.a ..\lib\auto\Tie\Hash\NamedCapture\NamedCapture.a ..\lib\auto\Time\HiRes\HiRes.a ..\lib\auto\Time\Piece\Piece.a ..\lib\auto\Unicode\Collate\Collate.a ..\lib\auto\Unicode\Normalize\Normalize.a ..\lib\auto\Win32API\File\File.a ..\lib\auto\Win32CORE\Win32CORE.a ..\lib\auto\XS\APItest\APItest.a ..\lib\auto\XS\Typemap\Typemap.a ..\lib\auto\arybase\arybase.a ..\lib\auto\attributes\attributes.a ..\lib\auto\mro\mro.a ..\lib\auto\re\re.a ..\lib\auto\threads\threads.a ..\lib\auto\threads\shared\shared.a  \
>>>
>>> This would suggest that those missing boot symbols should *not* be missing (as they're to be found in those various .a files specified in the above command).
>>>
>>> However, if I do an 'objdump -t' on the libperl518s.a that was built, I get:
>>>
>>> C:\_32>objdump -t C:/comp/perl-5.18.0/libperl518s.a >libperl518s.dump
>>> objdump: B.a: File format not recognized
>>> objdump: Bzip2.a: File format not recognized
>>> objdump: Zlib.a: File format not recognized
> [...]
>>> That must surely be part of the problem ? I wonder why those file formats would be unrecognized.
>>>
>>> (Btw, this was with a 32-bit build using a mingw.org port of gcc-4.7.0.)
>> It seems that creates an archive of archives, instead of an archive of object files.
>> Leon
> Yes, reading the docs for GNU ar I see that it does indeed, and it looks like there is no other way to do this than to extract the object files from each extension's archive and then archive all the extracted object files into the perl static library. I will look at doing this soon unless anyone would like to do it sooner.

Just an idea (maybe not the best one):

libperl518s.a:
     if exist ..\win32.static.tmp rmdir /S /Q ..\win32.static.tmp
     mkdir ..\win32.static.tmp
     cd ..\win32.static.tmp
     for %j IN ($(shell @type ..\win32\Extensions_static)) DO ar x %j
     ar rc libperl518s.a *.o

--
kmx


Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About