klibc-bot for Ben Hutchings
2020-Aug-20 21:09 UTC
[klibc] [klibc:master] klcc: Treat CC, LD, STRIP as multiple words
Commit-ID: 7752eb456addbd1973e9c6b609294ccef89a65a2 Gitweb: http://git.kernel.org/?p=libs/klibc/klibc.git;a=commit;h=7752eb456addbd1973e9c6b609294ccef89a65a2 Author: Ben Hutchings <ben at decadent.org.uk> AuthorDate: Thu, 20 Aug 2020 21:48:07 +0100 Committer: Ben Hutchings <ben at decadent.org.uk> CommitDate: Thu, 20 Aug 2020 21:50:09 +0100 [klibc] klcc: Treat CC, LD, STRIP as multiple words LLVM cross-builds use the same front-end programs but with a "-target <triplet>" option. Add support for this. Signed-off-by: Ben Hutchings <ben at decadent.org.uk> --- klcc/klcc.in | 12 ++++++------ klcc/makeklcc.pl | 10 +++++----- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/klcc/klcc.in b/klcc/klcc.in index 43d0984a..7b3b8f3b 100644 --- a/klcc/klcc.in +++ b/klcc/klcc.in @@ -218,7 +218,7 @@ if ( $debugging ) { if ( $operation ne '' ) { # Just run gcc with the appropriate options @outopt = ('-o', $output) if ( defined($output) ); - $rv = mysystem($CC, @ccopt, @outopt, files_with_lang(\@files, \%flang)); + $rv = mysystem(@CC, @ccopt, @outopt, files_with_lang(\@files, \%flang)); } else { if ( scalar(@files) == 0 ) { die "$0: No input files!\n"; @@ -241,7 +241,7 @@ if ( $operation ne '' ) { push(@objs, $fo); push(@rmobjs, $fo) unless ( $save_temps ); - $rv = mysystem($CC, @ccopt, '-c', '-o', $fo, '-x', $flang{$f}, $f); + $rv = mysystem(@CC, @ccopt, '-c', '-o', $fo, '-x', $flang{$f}, $f); if ( $rv ) { unlink(@rmobjs); @@ -251,18 +251,18 @@ if ( $operation ne '' ) { } # Get the libgcc pathname for the *current* gcc - open(LIBGCC, '-|', $CC, @ccopt, '-print-libgcc-file-name') + open(LIBGCC, '-|', @CC, @ccopt, '-print-libgcc-file-name') or die "$0: cannot get libgcc filename\n"; $libgcc = <LIBGCC>; chomp $libgcc; close(LIBGCC); if ( $shared ) { - $rv = mysystem($LD, @LDFLAGS, @sharedopt, @ldopt, @outopt, @objs, + $rv = mysystem(@LD, @LDFLAGS, @sharedopt, @ldopt, @outopt, @objs, @libs, @stdlibpath, '--start-group', @sharedlib, $libgcc, '--end-group'); } else { - $rv = mysystem($LD, @LDFLAGS, @staticopt, @ldopt, @outopt, @objs, + $rv = mysystem(@LD, @LDFLAGS, @staticopt, @ldopt, @outopt, @objs, @libs, @stdlibpath, '--start-group', @staticlib, $libgcc, '--end-group'); } @@ -270,7 +270,7 @@ if ( $operation ne '' ) { unlink(@rmobjs); if ( $strip && !$rv ) { - $rv = mysystem($STRIP, @STRIPFLAGS, $output); + $rv = mysystem(@STRIP, @STRIPFLAGS, $output); } } diff --git a/klcc/makeklcc.pl b/klcc/makeklcc.pl index 5945eb16..41c5cf46 100644 --- a/klcc/makeklcc.pl +++ b/klcc/makeklcc.pl @@ -34,21 +34,21 @@ while ( defined($l = <KLIBCCONF>) ) { chomp $l; if ( $l =~ /^([^=]+)\=\s*(.*)$/ ) { $n = $1; $s = $2; + my @s = split(/\s+/, $s); if ( $n eq 'CC' || $n eq 'LD' || $n eq 'STRIP' ) { - $s1 = pathsearch($s); + $s1 = pathsearch($s[0]); die "$0: Cannot find $n: $s\n" unless ( defined($s1) ); - $s = $s1; + $s[0] = $s1; } print "\$$n = \"\Q$s\E\";\n"; print "\$conf{\'\L$n\E\'} = \\\$$n;\n"; print "\@$n = ("; $sep = ''; - while ( $s =~ /^\s*(\S+)/ ) { - print $sep, "\"\Q$1\E\""; + for (@s) { + print $sep, "\"\Q$_\E\""; $sep = ', '; - $s = "$'"; } print ");\n"; }
Seemingly Similar Threads
- Don't hardcode paths in klcc
- [klibc:riscv64-enable-relax] Kbuild, klcc: Support multiple objects in KLIBCCRTSHARED
- [PATCH] klcc compatibility with gcc
- Issue with "ExecStartPost" attribute in systemd daemon faile
- makeklcc.pl passes '' to ld if LDFLAGS empty among things