This looks like a good change to get in. Can you get the change reviewed someone more of an "awk" expert than I am ;-)
- Suneel On Fri, Mar 18, 2011 at 8:30 PM, David Coakley <dcoak...@gmail.com> wrote: > One of the awk scripts used during the Open64 build currently requires > a GNU extension. On Ubuntu 10.10, the default awk program is mawk > rather than gawk as on most other systems. With mawk the script fails > and prevents the Fortran FE from building. > > To make things a little easier, I propose the following patch that > changes the script to use only traditional awk features. The output > of the script is identical. > > With the patch applied, I am able to build from source on Ubuntu 10.10 > without the added step of changing the default awk program. > > Suneel, let me know if you think this change should go into the > release. Thanks, > > -David Coakley / AMD Open Source Compiler Engineering > > > Index: osprey/libu/errmsg/extract.awk > =================================================================== > --- osprey/libu/errmsg/extract.awk (revision 3521) > +++ osprey/libu/errmsg/extract.awk (working copy) > @@ -1,5 +1,5 @@ > # > -# Copyright (C) 2009 Advanced Micro Devices, Inc. All Rights Reserved. > +# Copyright (C) 2009, 2011 Advanced Micro Devices, Inc. All Rights > Reserved. > # > # This program is free software; you can redistribute it and/or modify it > # under the terms of the GNU Lesser General Public License as published > @@ -32,19 +32,24 @@ > printf "\tchar *msg;\n"; > printf "} libu_default_msgs[] = {\n"; > } > -{ > - # note: using gawk extension to set 'result' > - if (match($0, /^\$msg ([0-9]+) (.+)$/, result)) { > - if (count > 0) { > - printf ",\n"; > - } > - count++; > +/^\$msg ([0-9]+) (.+)$/ { > + if (count > 0) { > + printf ",\n"; > + } > + count++; > > - # escape double-quotes in message text > - msg = result[2]; > - gsub(/"/, "\\\"", msg) > - printf "\t{ %s, \"%s\" }", result[1], msg > - } > + # the message number is the text between the first and second spaces > + sp1 = index($0, " ") > + sp2 = sp1 + index(substr($0, sp1 + 1), " ") > + num = substr($0, sp1 + 1, sp2 - sp1 - 1) > + > + # the message is the remainder following the second space in the line > + msg = substr($0, sp2 + 1) > + > + # escape double-quotes in message text > + gsub(/"/, "\\\"", msg) > + > + printf "\t{ %s, \"%s\" }", num, msg > } > END { > printf "\n};\n"; > > ------------------------------------------------------------------------------ > Colocation vs. Managed Hosting > A question and answer guide to determining the best fit > for your organization - today and in the future. > http://p.sf.net/sfu/internap-sfd2d > _______________________________________________ > Open64-devel mailing list > Open64-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/open64-devel > ------------------------------------------------------------------------------ Colocation vs. Managed Hosting A question and answer guide to determining the best fit for your organization - today and in the future. http://p.sf.net/sfu/internap-sfd2d _______________________________________________ Open64-devel mailing list Open64-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/open64-devel