X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=klibc%2Fklcc.in;h=d8721c9a6bacda613cc19cff9c52dd83c0643b62;hp=bdd03e73b3399642fd7cba15e273d5330f64d4e5;hb=4272779706c53c635a3fa5431a4e8791402183b4;hpb=472419869c387bb0963d8cfecca997b8154f4d44 diff --git a/klibc/klcc.in b/klibc/klcc.in index bdd03e73b..d8721c9a6 100644 --- a/klibc/klcc.in +++ b/klibc/klcc.in @@ -77,6 +77,11 @@ sub mysystem(@) { return system(@_); } +# +# Initialization +# +open(NULL, '+<', '/dev/null') or die "$0: cannot open /dev/null\n"; + # # Begin parsing options. # @@ -191,10 +196,17 @@ if ( $operation ne '' ) { } } + # Get the libgcc pathname for the *current* gcc + open(LIBGCC, '-|', $CC, @ccopt, '-print-libgcc-file-name') + or die "$0: cannot get libgcc filename\n"; + $libgcc = ; + chomp $libgcc; + close(LIBGCC); + if ( $shared ) { - $rv = mysystem($LD, @LDFLAGS, @sharedopt, @ldopt, @outopt, @objs, @sharedlib); + $rv = mysystem($LD, @LDFLAGS, @sharedopt, @ldopt, @outopt, @objs, @sharedlib, $libgcc); } else { - $rv = mysystem($LD, @LDFLAGS, @staticopt, @ldopt, @outopt, @objs, @staticlib); + $rv = mysystem($LD, @LDFLAGS, @staticopt, @ldopt, @outopt, @objs, @staticlib, $libgcc); } unlink(@rmobjs);