[gold patch]Fix gold build on MacOSX Xcode 3.2.6

Jing Yu jingyu@google.com
Tue Jun 5 19:44:00 GMT 2012


Thanks a lot!
Here is the revised patch.
Could someone help to commit it in?

Thanks!

2012-06-05  Jing Yu  <jingyu@google.com>

       * gold.h (textdomain): Add do {} to empty while(0)
                     (bindtextdomain): Likewise

Index: gold/gold.h
===================================================================
RCS file: /cvs/src/src/gold/gold.h,v
retrieving revision 1.47
diff -u -r1.47 gold.h
--- gold/gold.h	8 Jun 2011 04:43:28 -0000	1.47
+++ gold/gold.h	5 Jun 2012 19:40:24 -0000
@@ -58,8 +58,8 @@
 # define gettext(Msgid) (Msgid)
 # define dgettext(Domainname, Msgid) (Msgid)
 # define dcgettext(Domainname, Msgid, Category) (Msgid)
-# define textdomain(Domainname) while (0) /* nothing */
-# define bindtextdomain(Domainname, Dirname) while (0) /* nothing */
+# define textdomain(Domainname) do {} while (0) /* nothing */
+# define bindtextdomain(Domainname, Dirname) do {} while (0) /* nothing */
 # define _(String) (String)
 # define N_(String) (String)
 #endif


On Tue, Jun 5, 2012 at 12:04 PM, Ian Lance Taylor <iant@google.com> wrote:
> "Doug Kwan (關振德)" <dougkwan@google.com> writes:
>
>> [+iant]
>> I don't have approval.  You need to sent this to Ian.
>>
>> On Tue, Jun 5, 2012 at 10:59 AM, Jing Yu <jingyu@google.com> wrote:
>>> The gcc 4.2.1 (Apple Inc. build 5666, dot 3) comes with Xcode 3.2.6
>>> emits warning for "while (0);" and breaks the build (thanks to -Werror
>>> which treat warning as error).  Add "{}" to fix it.
>
> That's wrong.  When the macro is used, there will be a trailing
> semicolon.  The point of using "while (0)" is to safely swallow that
> trailing semicolon.
>
> Try this:
>
> # define textdomain(Domainname) do {} while (0)
>
> Ian
>
>>> Gold make check passes on x86-64.
>>>
>>> 2012-06-05  Jing Yu  <jingyu@google.com>
>>>
>>>        * gold.h (textdomain): Add {} to empty while(0)
>>>                      (bindtextdomain): Likewise
>>>
>>> Index: gold/gold.h
>>> ===================================================================
>>> RCS file: /cvs/src/src/gold/gold.h,v
>>> retrieving revision 1.47
>>> diff -u -r1.47 gold.h
>>> --- gold/gold.h 8 Jun 2011 04:43:28 -0000       1.47
>>> +++ gold/gold.h 5 Jun 2012 17:46:46 -0000
>>> @@ -58,8 +58,8 @@
>>>  # define gettext(Msgid) (Msgid)
>>>  # define dgettext(Domainname, Msgid) (Msgid)
>>>  # define dcgettext(Domainname, Msgid, Category) (Msgid)
>>> -# define textdomain(Domainname) while (0) /* nothing */
>>> -# define bindtextdomain(Domainname, Dirname) while (0) /* nothing */
>>> +# define textdomain(Domainname) while (0) {} /* nothing */
>>> +# define bindtextdomain(Domainname, Dirname) while (0) {} /* nothing */
>>>  # define _(String) (String)
>>>  # define N_(String) (String)
>>>  #endif



More information about the Binutils mailing list