[klibc] makeklcc.pl passes '' to ld if LDFLAGS empty among things

Martin Schlemmer azarah at nosferatu.za.org
Wed Mar 9 15:42:44 PST 2005


Hi,

If say ppc where LDFLAGS=, you get the problem that klcc is generated
like:

-----
@LDFLAGS = ( '' )
-----

which then causes '' to get passed to ld, which gives:

-----
/usr/bin/ld: : No such file: No such file or directory
-----

One of two ways (I tried over here at least) to fix it, namely the quick
hack:

-----
--- 1/makeklcc.pl       2005-03-10 00:22:03.000000000 +0200
+++ 2/makeklcc.pl       2005-03-10 00:50:32.000000000 +0200
@@ -13,7 +13,11 @@
     my($s) = @_;

     $s =~ s/\s+/\',\'/g;
-    return "(\'".$s."\')";
+    if ( $s ne "" ) {
+       return "(\'".$s."\')";
+    } else {
+       return "()";
+    }
 }

 print "#!${perlpath}\n";
-----

Or the more extreme:

-----
--- 1/makeklcc.pl       2005-03-10 00:22:03.000000000 +0200
+++ 2/makeklcc.pl       2005-03-10 01:26:51.000000000 +0200
@@ -7,24 +7,14 @@

 ($klccin, $klibcconf, $perlpath) = @ARGV;

-# This should probably handle quotes and escapes...
-sub string2list($)
-{
-    my($s) = @_;
-
-    $s =~ s/\s+/\',\'/g;
-    return "(\'".$s."\')";
-}
-
 print "#!${perlpath}\n";

 open(KLIBCCONF, '<', $klibcconf) or die "$0: cannot open $klibcconf: $!\n";
 while ( defined($l = <KLIBCCONF>) ) {
-    chomp $l;
-    if ( $l =~ /^([^=]+)\=(.*)$/ ) {
+    if ( $l =~ /^([^=]+)=(.*)$/ ) {
        $n = $1;  $s = $2;
        print "\$$n = \"\Q$s\E\";\n";
-       print "\@$n = ", string2list($s), ";\n";
+       print "\@$n = qw( $s );\n";
        print "\$conf{\'\L$n\E\'} = \\\$$n;\n";
     }
 }
-----

(Credits for last goes to Aron Griffis)


Regards,

-- 
Martin Schlemmer



-- 
---------------------[ Ciphire Signature ]----------------------
From: azarah at nosferatu.za.org signed email body (1173 characters)
Date: on 09 March 2005 at 23:39:42 UTC
To:   klibc at zytor.com
----------------------------------------------------------------
: Ciphire has secured this email against identity theft.
: Free download at www.ciphire.com. The garbled lines
: below are the sender's verifiable digital signature.
----------------------------------------------------------------
00fAAAAAEAAAA+iS9ClQQAAE4CAAIAAgACACAjYe/qeWoHRrdDE3mOifT0WPgp92
kbkclxgX1lQsV9VwEAJOQiG+Djg3e7Ai63e8AMF0Hl/gle8q4Ud88Lecx5fcXNtl
3DAZVZcFq04+rPD6tpTtLgraiMSUDYV3YWoTTHKg==
------------------[ End Ciphire Signed Message ]----------------



More information about the klibc mailing list