Busybox awk barfing on gcc 4.0.2 build.
Bernhard Fischer
rep.nop at aon.at
Mon Oct 17 08:49:54 UTC 2005
On Mon, Oct 17, 2005 at 02:03:12AM -0500, Rob Landley wrote:
>So it should be pretty obvious that I got distracted from putting together
>busybox 1.0.2 by trying to get a release of my Firmware Linux distro out now
>that I got unblocked on that. And I'm using an svn snapshot of the 1.1 line
>in this.
>
>So I got gcc 4.0.2 to link things against uClibc 0.9.28, and built yesterday's
>busybox snapshot with that, and now I'm trying to _rebuild_ gcc 4.0.2 using
>the busybox tools.
>
>And awk is failing to parse gcc-4.0.2/gcc/opt-functions.awk (attached). Try
>it with "busybox awk -f opt-functions.awk" and you get
>
>awk: tmp/gcc-4.0.2/gcc/opt-functions.awk:21: Unexpected token
>
>Any clues?
no. ;)
busybox awk doesn't like the space after the function name and the
bracket.
function switch_flags(flags)
instead of the
function switch_flags (flags)
would work around it, fwiw.
HTH,
Bernhard
>
>Rob
># Copyright (C) 2003,2004 Free Software Foundation, Inc.
># Contributed by Kelley Cook, June 2004.
># Original code from Neil Booth, May 2003.
>#
># This program is free software; you can redistribute it and/or modify it
># under the terms of the GNU General Public License as published by the
># Free Software Foundation; either version 2, or (at your option) any
># later version.
>#
># This program is distributed in the hope that it will be useful,
># but WITHOUT ANY WARRANTY; without even the implied warranty of
># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
># GNU General Public License for more details.
>#
># You should have received a copy of the GNU General Public License
># along with this program; if not, write to the Free Software
># Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
>
># Some common subroutines for use by opt[ch]-gen.awk.
>
>function switch_flags (flags)
>{
> flags = " " flags " "
> result = "0"
> for (j = 0; j < n_langs; j++) {
> regex = " " langs[j] " "
> gsub ( "\\+", "\\+", regex )
> if (flags ~ regex)
> result = result " | " macros[j]
> }
> if (flags ~ " Common ") result = result " | CL_COMMON"
> if (flags ~ " Joined ") result = result " | CL_JOINED"
> if (flags ~ " JoinedOrMissing ") \
> result = result " | CL_JOINED | CL_MISSING_OK"
> if (flags ~ " Separate ") result = result " | CL_SEPARATE"
> if (flags ~ " RejectNegative ") result = result " | CL_REJECT_NEGATIVE"
> if (flags ~ " UInteger ") result = result " | CL_UINTEGER"
> if (flags ~ " Undocumented ") result = result " | CL_UNDOCUMENTED"
> if (flags ~ " Report ") result = result " | CL_REPORT"
> sub( "^0 \\| ", "", result )
> return result
>}
>
>function var_args(flags)
>{
> if (flags !~ "Var\\(")
> return ""
> sub(".*Var\\(", "", flags)
> sub("\\).*", "", flags)
>
> return flags
>}
>function var_name(flags)
>{
> s = var_args(flags)
> if (s == "")
> return "";
> sub( ",.*", "", s)
> return s
>}
>function var_set(flags)
>{
> s = var_args(flags)
> if (s !~ ",")
> return "0, 0"
> sub( "[^,]*,", "", s)
> return "1, " s
>}
>function var_ref(flags)
>{
> name = var_name(flags)
> if (name == "")
> return "0"
> else
> return "&" name
>}
>_______________________________________________
>busybox mailing list
>busybox at busybox.net
>http://busybox.net/cgi-bin/mailman/listinfo/busybox
More information about the busybox
mailing list