modules/libpr0n/decoders/icon fails to build nsString problems

RESOLVED FIXED in mozilla1.9.2a1

Status

defect
RESOLVED FIXED
11 years ago
Last year

People

(Reporter: jeremyhu, Assigned: jeremyhu)

Tracking

1.9.0 Branch
mozilla1.9.2a1
x86
macOS

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(2 attachments)

User-Agent:       Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1b3) Gecko/20090305 Firefox/3.1b3
Build Identifier: xulrunner 1.9.0.7 OSX/darwin X11

I'm building xulrunner-1.9.0.7 for darwin/X11.  modules/libpr0n/decoders/icon fails to build with:


/usr/bin/g++-4.0 -o nsIconModule.o -c -I../../../../dist/include/system_wrappers -include ../../../../config/gcc_hidden.h -DUSE_ICON_DECODER -DOSTYPE=\"Darwin9.6.0\" -DOSARCH=Darwin -I./mac -I. -I. -I../../../../dist/include/xpcom -I../../../../dist/include/string -I../../../../dist/include/gfx -I../../../../dist/include/thebes -I../../../../dist/include/imglib2 -I../../../../dist/include/necko -I../../../../dist/include   -I../../../../dist/include/imgicon -I/opt/local/include/nspr -I/opt/local/include/nss -I/opt/local/include  -I/opt/local/include  -I../../../../dist/sdk/include -I/opt/local/include   -fPIC  -I/opt/local/include  -I/opt/local/include -fno-rtti -fno-exceptions -Wall -Wconversion -Wpointer-arith -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wcast-align -Wno-long-long -O2 -fno-strict-aliasing -fpascal-strings -fno-common -fshort-wchar -pthread -pipe  -DNDEBUG -DTRIMMED -O2  -I/opt/local/include  -I/opt/local/include -DMOZILLA_CLIENT -include ../../../../mozilla-config.h -Wp,-MD,.deps/nsIconModule.pp nsIconModule.cpp
In file included from ../../../../dist/include/string/nsAString.h:43,
                 from ../../../../dist/include/string/nsSubstring.h:43,
                 from ../../../../dist/include/string/nsString.h:44,
                 from ../../../../dist/include/string/nsXPIDLString.h:43,
                 from ./mac/nsIconChannel.h:45,
                 from nsIconModule.cpp:50:
../../../../dist/include/string/nsStringFwd.h:49:2: error: #error Internal string headers are not available from external-linkage code.
In file included from ../../../../dist/include/string/nsAString.h:68,
                 from ../../../../dist/include/string/nsSubstring.h:43,
                 from ../../../../dist/include/string/nsString.h:44,
                 from ../../../../dist/include/string/nsXPIDLString.h:43,
                 from ./mac/nsIconChannel.h:45,
                 from nsIconModule.cpp:50:
../../../../dist/include/string/nsTAString.h:41:2: error: #error Cannot use internal string classes without MOZILLA_INTERNAL_API defined. Use the frozen header nsStringAPI.h instead.
In file included from ../../../../dist/include/string/nsAString.h:74,
                 from ../../../../dist/include/string/nsSubstring.h:43,
                 from ../../../../dist/include/string/nsString.h:44,
                 from ../../../../dist/include/string/nsXPIDLString.h:43,
                 from ./mac/nsIconChannel.h:45,
                 from nsIconModule.cpp:50:
../../../../dist/include/string/nsTAString.h:41:2: error: #error Cannot use internal string classes without MOZILLA_INTERNAL_API defined. Use the frozen header nsStringAPI.h instead.
In file included from ../../../../dist/include/string/nsString.h:201,
                 from ../../../../dist/include/string/nsXPIDLString.h:43,
                 from ./mac/nsIconChannel.h:45,
                 from nsIconModule.cpp:50:
../../../../dist/include/string/nsLiteralString.h:106:1: warning: "NS_LITERAL_STRING" redefined
In file included from ../../../../dist/include/xpcom/nsStringGlue.h:52,
                 from nsIconURI.h:45,
                 from nsIconModule.cpp:49:
../../../../dist/include/xpcom/nsStringAPI.h:1081:1: warning: this is the location of the previous definition
../../../../dist/include/string/nsStringFwd.h:63: error: using typedef-name 'nsAutoString' after 'class'
../../../../dist/include/xpcom/nsStringAPI.h:1419: error: 'nsAutoString' has a previous declaration here
../../../../dist/include/string/nsStringFwd.h:83: error: using typedef-name 'nsCAutoString' after 'class'
../../../../dist/include/xpcom/nsStringAPI.h:1418: error: 'nsCAutoString' has a previous declaration here
../../../../dist/include/string/nsTSubstring.h:55: error: redefinition of 'class nsAString'
../../../../dist/include/xpcom/nsStringAPI.h:58: error: previous definition of 'class nsAString'
../../../../dist/include/string/nsTSubstring.h:699: error: expected unqualified-id before '&' token
../../../../dist/include/string/nsTSubstring.h:699: error: expected ',' or '...' before '&' token
../../../../dist/include/string/nsTSubstring.h:699: error: ISO C++ forbids declaration of 'parameter' with no type
../../../../dist/include/string/nsTSubstring.h:703: error: expected unqualified-id before '&' token
../../../../dist/include/string/nsTSubstring.h:703: error: expected ',' or '...' before '&' token
../../../../dist/include/string/nsTSubstring.h:703: error: ISO C++ forbids declaration of 'parameter' with no type

... and more misc fallout from above...

Reproducible: Always
Component: General → Build Config
Product: Firefox → Core
QA Contact: general → build-config
Version: unspecified → 1.9.0 Branch
There is no reference to MOZILLA_INTERNAL_API anywhere in libpr0n .... I wonder if the problem is that it's including mac/nsIconChannel.h when it shouldn't.  Is mac/nsIconChannel.h just for Cocoa?  I don't have the source with me right now, but that's my guess.  I'll take a look later when I get back home...
Yeah, it looks like it should be including  gtk/nsIconChannel.h ...

The problem is that line 70 of Makefile.in is:

ifeq ($(OS_ARCH),Darwin)

and it should be:

ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT)))
I hope I'm doing the review process correctly.  Please tell me if setting "review" to "?" was not the correct thing to do.
Attachment #370258 - Flags: review?
Attachment #370258 - Flags: review? → review?(benjamin)
Comment on attachment 370258 [details] [diff] [review]
Fix Makefile.in for Darwin/gtk

We don't have a "mac" toolkit any more, just cocoa, so this can just be

ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))

If you can provide the alternate patch, that would be great. If not, let me know and I'll try to put it together.
Attachment #370258 - Flags: review?(benjamin) → review-
Status: UNCONFIRMED → NEW
Ever confirmed: true
Depends on: 486782
No longer depends on: 486782
Ben, I like the idea of using a new variable to differentiate this.  It's possible that at some point there will be a native gtk based cocoa bundle option or something similar... the best way to decide this is to divorce the filesystem layout from the OS or toolkit choice.  See #486782
Depends on: 486782
Assignee: nobody → jeremyhu
Attachment #371099 - Flags: review?(benjamin)
No longer depends on: 486782
Status: NEW → ASSIGNED
Attachment #371099 - Flags: review?(benjamin) → review+
Keywords: checkin-needed
http://hg.mozilla.org/mozilla-central/rev/2b21f8f4a8ce
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Keywords: checkin-needed
Resolution: --- → FIXED
Target Milestone: --- → mozilla1.9.2a1
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.