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