Closed Bug 312951 Opened 19 years ago Closed 18 years ago

cairo-gtk2 static builds broken since 2005-10-05

Categories

(Core :: Graphics, defect)

x86
Linux
defect
Not set
major

Tracking

()

RESOLVED DUPLICATE of bug 338446

People

(Reporter: Waldo, Unassigned)

References

Details

Attachments

(2 files, 1 obsolete file)

Ever since 2005-10-05 when a bunch of Thebes code was updated, I've been unable
to build cairo-gtk2 Firefox; I get a bunch of linking errors while running 'c++
-o firefox-bin [...]' which I'll add as an attachment in a second.  My fairly
mundane .mozconfig is as follows:

##############################################
. $topsrcdir/browser/config/mozconfig
mk_add_options MOZ_OBJDIR=~/moz/builds/firefox
mk_add_options MOZ_CO_PROJECT=browser

export BUILD_OFFICIAL=1
export MOZILLA_OFFICIAL=1
mk_add_options BUILD_OFFICIAL=1
mk_add_options MOZILLA_OFFICIAL=1

ac_add_options --disable-debug
ac_add_options --enable-static
ac_add_options --disable-shared
ac_add_options --disable-tests

ac_add_options --enable-default-toolkit=cairo-gtk2
ac_add_options --enable-pango
ac_add_options --enable-svg
ac_add_options --enable-canvas
##############################################

My build system is running FC4 with all the latest packages, including gtk2
2.6.10.  gcc -v is 'gcc version 4.0.1 20050727'; ld -v is 'GNU ld version
2.15.94.0.2.2 20041220'.

It looks like when gfx/src/thebes/ is getting linked it's not finding the thebes
module in gfx/thebes, but thebes is in REQUIRES and MODULE's set correctly in
gfx/thebes, so my nearly-nonexistent build knowledge says that linking should
work correctly.  Hopefully someone with more knowledge about the linking process
will be able to see the problem, because I haven't got a chance at doing so in
any reasonable period of time.

(Incidentally, this is why I haven't yet responded to a request in Vlad's blog
comments for bugs on the various brokennesses I've seen with Cairo-ized Firefox
build; I haven't been able to build, so I haven't been able to generate a list
that's valid against the latest trunk code.)
Attached file Full list of the linking errors (obsolete) —
Thebes is known-broken in static builds, please use dynamic builds until we can
resolve the linking issues.
Is this still a problem?  I know static builds work on windows.
No; it's a different set of errors, but they still exist.  See the attachment for the current full crop of them.  The objdir's different and gcc -v is now "gcc version 4.0.2 20051125 (Red Hat 4.0.2-8)", but other than that everything else is the same.
Attachment #200029 - Attachment is obsolete: true
Summary: Problems with cairo-gtk2 since 2005-10-05 - build process broken → cairo-gtk2 static builds broken since 2005-10-05
It does not find the symbols from $OBJDIR/dist/lib/libthebes.a. So if you manually add "thebes" to $OBJDIR/config/final-link-libs and $(MOZ_PANGO_LIBS) to $(LIBS) in browser/app/Makefile.in it compiles. Here it then crashes on startup, but not sure if that is related.
Attached patch buildconfig fixSplinter Review
This fixes the typo in the thebes makefile and add pango libs to browser/app/Makefile.in.
Assignee: nobody → mozilla
Status: NEW → ASSIGNED
Attachment #214670 - Flags: review?(pavlov)
*** Bug 335311 has been marked as a duplicate of this bug. ***
Comment on attachment 214670 [details] [diff] [review]
buildconfig fix

Perhaps Benjamin will be able to review this sooner?
Attachment #214670 - Flags: review?(pavlov) → review?(benjamin)
Peter, I had some other troubles with non-cairo-gtk2 on gtk-2.8 (bug338446). For static linking of gtk2 I found a different patch (https://bugzilla.mozilla.org/attachment.cgi?id=222532) that works also for building cairo-gtk2 (at least for gtk-2.8) statically. Would be nice to get a comment from you in bug338446 as this could also fix potential trouble for other toolkit apps, thanks.
I don't have enough in-depth knowledge about the build system to say if the "global" solution of the patch in bug 338446 or this "local" version to fix Firefox is the way to go. I didn't know that other builds were broken in a similar way, but I would guess that the global change is the way to go.

I hope that a review will clarify this.
Attachment #214670 - Flags: review?(benjamin) → review+
(In reply to comment #10)
> I don't have enough in-depth knowledge about the build system to say if the
> "global" solution of the patch in bug 338446 or this "local" version to fix
> Firefox is the way to go. I didn't know that other builds were broken in a
> similar way, but I would guess that the global change is the way to go.
> 
> I hope that a review will clarify this.
> 
Peter, Benjamin, though the patch has now review+, I'll wanted to let you know, that TB does't build static with cairo-gtk2 (which is now default linux toolkit also for TB) on gtk-2.8. I assume the patch here solves only the FF build problem. (Unfortunately I wasn't able to check TB earlier for another unrelated bug). Putting the dependency on $(MOZ_PANGO_LIBS) in config/static-config.mk allows to build both, FF and TB on my system. Therefore, I'll ask in bug 338446 for review of the "global" patch. I'll give there reference to this bug. Benjamin will probably decide, which solution he prefers.
FYI, the first part of the patch for gfx/thebes/src was already corrected in the tree.
Whatever gets decided, it is really a waste of time to work on small bugs like this...
Assignee: mozilla → nobody
Status: ASSIGNED → NEW
And it could be a bigger waste of time to use Firefox if we follow your thought.

Well, I think I will dump firefox for Opera, so.
the typo is already fixed and the pango libs issue was fixed is bug 338446

*** This bug has been marked as a duplicate of 338446 ***
Status: NEW → RESOLVED
Closed: 18 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: