From 0b10f795f1e1bfc48ccd88ce089373881764a83a Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Thu, 21 Aug 2003 02:19:25 +0000 Subject: [PATCH] * speclib: Fix created lib to avoid "File truncated" problems. --- winsup/cygwin/ChangeLog | 4 ++++ winsup/cygwin/speclib | 13 +++++++++++++ 2 files changed, 17 insertions(+) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index f3219d0b0..03a7ed515 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,7 @@ +2003-08-20 Christopher Faylor + + * speclib: Fix created lib to avoid "File truncated" problems. + 2003-08-20 Pierre Humblet * exceptions.cc (interrupt_setup): Set sigsave.sig last to avoid a diff --git a/winsup/cygwin/speclib b/winsup/cygwin/speclib index c686343ad..4a08ab709 100755 --- a/winsup/cygwin/speclib +++ b/winsup/cygwin/speclib @@ -37,3 +37,16 @@ else fi /bin/rm -f $lib $ar crus $lib *.o +export lib; +perl -pi.bak -- - $lib << 'EOF' +BEGIN { + binmode STDIN; + binmode STDOUT; + $lib = ($ENV{lib} =~ m!/([^/]+)$!o)[0] || $ENV{lib}; + $lib =~ s/\.a//o; + my $pad = length('cygwin1_dll') - length($lib); + die "speclib: library name too long (" . length($lib) . ")\n" if $pad < 0; + $lib = "__head_$lib" . "\0" x $pad; +} + s/__head_cygwin1_dll/$lib/g; +'EOF'