Closed Bug 715930 Opened 13 years ago Closed 13 years ago

Use stdc++compat.cpp on OS X too

Categories

(Firefox Build System :: General, defect)

x86
macOS
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
mozilla12

People

(Reporter: espindola, Assigned: espindola)

References

Details

Attachments

(1 file, 2 obsolete files)

      No description provided.
Attached patch Use stdc++compat.cpp on OS X too (obsolete) — Splinter Review
https://tbpl.mozilla.org/?tree=Try&rev=e4eaf44c614e
Assignee: nobody → respindola
Status: NEW → ASSIGNED
Attachment #586461 - Flags: review?(ted.mielczarek)
Attached patch Use stdc++compat.cpp on OS X too (obsolete) — Splinter Review
https://tbpl.mozilla.org/?tree=Try&rev=0ba8251cf623
Attachment #586461 - Attachment is obsolete: true
Attachment #586461 - Flags: review?(ted.mielczarek)
Attachment #586539 - Flags: review?(ted.mielczarek)
Comment on attachment 586539 [details] [diff] [review]
Use stdc++compat.cpp on OS X too

Review of attachment 586539 [details] [diff] [review]:
-----------------------------------------------------------------

I'm going to punt this to glandium.
Attachment #586539 - Flags: review?(ted.mielczarek) → review?(mh+mozilla)
What is the need for this?
At a higher level the bug it blocks:
https://bugzilla.mozilla.org/show_bug.cgi?id=715397

More specifically, to be able to build with the 10.6 SDK and run the binary on 10.5.
See 
https://tbpl.mozilla.org/php/getParsedLog.php?id=8360973&tree=Try&full=1#error0 for an example of what this fix.
Comment on attachment 586539 [details] [diff] [review]
Use stdc++compat.cpp on OS X too

Review of attachment 586539 [details] [diff] [review]:
-----------------------------------------------------------------

::: build/autoconf/libstdcxx.py
@@ +69,5 @@
>  
>  if __name__ == '__main__':
> +    if os.uname()[0] == 'Darwin':
> +        sdk_dir = os.environ['MACOS_SDK_DIR']
> +        if 'MacOSX10.5.sdk' in sdk_dir:

Wouldn't it be better to use MACOSX_DEPLOYMENT_TARGET?

::: build/stdc++compat.cpp
@@ +56,5 @@
>      /* Instantiate these templates to avoid GLIBCXX_3.4.9 symbol versions */
>      template ostream& ostream::_M_insert(double);
>      template ostream& ostream::_M_insert(long);
>      template ostream& ostream::_M_insert(unsigned long);
> +    template ostream& ostream::_M_insert(const void*);

That part is in bug 702158, and I guess it can be #ifdef DEBUG like there.
> >  if __name__ == '__main__':
> > +    if os.uname()[0] == 'Darwin':
> > +        sdk_dir = os.environ['MACOS_SDK_DIR']
> > +        if 'MacOSX10.5.sdk' in sdk_dir:
> 
> Wouldn't it be better to use MACOSX_DEPLOYMENT_TARGET?

No, that is the OS version we are targeting, not the SDK we are using. In particular, using that would cause the build to fail in the current setup (10.5 MACOSX_DEPLOYMENT_TARGET and 10.5 SDK).

> ::: build/stdc++compat.cpp
> @@ +56,5 @@
> >      /* Instantiate these templates to avoid GLIBCXX_3.4.9 symbol versions */
> >      template ostream& ostream::_M_insert(double);
> >      template ostream& ostream::_M_insert(long);
> >      template ostream& ostream::_M_insert(unsigned long);
> > +    template ostream& ostream::_M_insert(const void*);
> 
> That part is in bug 702158, and I guess it can be #ifdef DEBUG like there.

Maybe. I will try and let you know.
Comment on attachment 586539 [details] [diff] [review]
Use stdc++compat.cpp on OS X too

r+ modulo the part that is covered in bug 702158.
Attachment #586539 - Flags: review?(mh+mozilla) → review+
Attachment #587337 - Flags: review?(mh+mozilla) → review+
https://hg.mozilla.org/mozilla-central/rev/d377d38a23d3
Status: ASSIGNED → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla12
Depends on: 729926
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: