The default bug view has changed. See this FAQ.

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

RESOLVED FIXED in mozilla15

Status

()

Core
Build Config
--
major
RESOLVED FIXED
5 years ago
5 years ago

People

(Reporter: mconley, Assigned: glandium)

Tracking

Trunk
mozilla15
x86
Linux
Points:
---
Bug Flags:
in-testsuite -

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

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).
Even better - a direct link to the Makefile.in:  http://mxr.mozilla.org/comm-central/source/mozilla/xpcom/ds/Makefile.in#75

Comment 2

5 years ago
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

Updated

5 years ago
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.
(Assignee)

Comment 4

5 years ago
Created attachment 621513 [details] [diff] [review]
Use LIBS instead of LDFLAGS when testing for clock_gettime in librt

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
(Assignee)

Comment 6

5 years ago
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
(Assignee)

Updated

5 years ago
Component: Build Config → Build Config
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
Last Resolved: 5 years ago
Flags: in-testsuite-
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.