Closed Bug 752280 Opened 12 years ago Closed 12 years ago

Thunderbird builds on Ubuntu fail with "undefined reference to `mozilla::Time*`

Categories

(Firefox Build System :: General, defect)

x86
Linux
defect
Not set
major

Tracking

(Not tracked)

RESOLVED FIXED
mozilla15

People

(Reporter: mconley, Assigned: glandium)

References

Details

Attachments

(1 file)

Linking is failing on my Ubuntu box with the following:  http://pastebin.mozilla.org/1620136

I'm reasonably certain that this is fallout from bug 751727.  Shot in the dark - perhaps Thunderbird's build configuration does not define HAVE_CLOCK_MONOTONIC? (see mozilla/xpcom/ds/Makefile.in).
I am getting exactly this trying to build firefox trunk on ubuntu
ian@tqft-l:/sourcetrees/programs/mozilla/mozilla$ uname -a
Linux tqft-l 3.2.0-24-generic #38-Ubuntu SMP Tue May 1 16:18:50 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) 

/sourcetrees/programs/mozilla/central/mozilla-central/gfx/layers/ipc/ShadowLayersParent.cpp:424: undefined reference to `mozilla::TimeStamp::Now()'
../../gfx/layers/ShadowLayersParent.o: In function `mozilla::TimeDuration::ToMilliseconds() const':
/sourcetrees/programs/mozilla/central/mozilla-central/obj-x86_64-unknown-linux-gnu/gfx/layers/../../dist/include/mozilla/TimeStamp.h:81: undefined reference to `mozilla::TimeDuration::ToSeconds() const'
/usr/bin/ld.bfd.real: libxul.so: hidden symbol `mozilla::TimeStamp::Startup()' isn't defined
Severity: normal → major
I was able to get Thunderbird to build with Landry Breuil's patch that he mentions in comment 7 of bug 751727:

https://hg.mozilla.org/try/rev/341fbf4bc89e

He writes:

"After a quick look configure fails to find CLOCK_MONOTONIC #define because it's in sys/time.h and not time.h.

...

Hrm apparently POSIS says that it should be in time.h, so i'll see if i can get OpenBSD fixed instead."

So perhaps Ubuntu is in the same boat as OpenBSD, and have put the time.h file in an unexpected place.  Cc'ing Chris Coulson.

In the meantime, however, Landry's patch allows me to build.
This is one part of the problem: ac_link puts LDFLAGS before the .c file name, and LIBS after. Putting -lrt before the .c file name makes the Ubuntu linker throws -lrt away and then fails to link, which makes the MONOTONIC test fail.
Attachment #621513 - Flags: review?(ted.mielczarek)
Comment on attachment 621513 [details] [diff] [review]
Use LIBS instead of LDFLAGS when testing for clock_gettime in librt

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

Hilarious.
Attachment #621513 - Flags: review?(ted.mielczarek) → review+
Assignee: nobody → mh+mozilla
https://hg.mozilla.org/integration/mozilla-inbound/rev/0321d95b860d

If the sys/time.h vs. time.h part is still necessary, please file a separate bug.
Target Milestone: --- → Thunderbird 15.0
Product: Thunderbird → Core
QA Contact: build-config → build-config
Target Milestone: Thunderbird 15.0 → mozilla15
http://hg.mozilla.org/mozilla-central/rev/0321d95b860d
Status: NEW → RESOLVED
Closed: 12 years ago
Flags: in-testsuite-
Resolution: --- → FIXED
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: