Closed Bug 1164617 Opened 10 years ago Closed 9 years ago

Investigate compiler / binutils hacks and move them to mozbootstrap or remove tehm

Categories

(Release Engineering :: General, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: dustin, Assigned: dustin)

References

Details

We have a few hacks in place to make builds on Ubuntu-14.04 work:

# So that the compiler can find installed libs
ENV           LIBRARY_PATH  /usr/lib/x86_64-linux-gnu:$LIBRARY_PATH

# a.out.h needs to exist one directory lower, or the compiler will not find it
RUN ln -s /usr/include/linux/a.out.h /usr/include/a.out.h

# Without this, zlib.h can't find zconf.h, so hey, symlinks to the rescue, right?
RUN ln -s /usr/include/x86_64-linux-gnu/zconf.h /usr/include/zconf.h

If these are truly required, then they should be in mozbootstrap, rather than in the Dockerfile.  If they're not required, then we should fix whatever caused the errors that led to these being introduced.
Assignee: dustin → winter2718
see: https://bugzilla.mozilla.org/show_bug.cgi?id=1164641

We had to add another symlink to account for the fact that tooltool's compiler package doesn't have anything which matches the ubuntu specific: x86_64-linux-gnu-gcc

We can fix this by adding a "x86_64-linux-gnu-gcc" binary to the compiler package.
I'll probably take a crack at this in the near future, I've been able to use the desktop-build image as-is for mac cross-compile builds, but I have to unset LIBRARY_PATH and CPLUS_INCLUDE_PATH for the build to work.
The right thing to do here is to rebuild the compiler to know about the multiarch paths instead of the redhat style lib64 paths.

Now, there are two downsides that I know to building on ubuntu instead of centos (independently on the compiler thing):
- Firefox will only look for extra addons in /usr/lib64/mozilla/extensions and plugins in /usr/lib64/mozilla/plugins if it's built on centos. Building on ubuntu would change this behavior on our builds (see HAVE_USR_LIB64_DIR in toolkit/xre/* and xpcom/io/*). There might be other things.
- The resulting Firefox will use new symbol versions from the glibc. In practice that means it's likely the resulting binary will not work on older distros it currently supports.
(In reply to Mike Hommey [:glandium] from comment #3)
> The right thing to do here is to rebuild the compiler to know about the
> multiarch paths instead of the redhat style lib64 paths.

We talked about this briefly on IRC, I guess glandium and dustin planned to chat about this in Whistler.

> Now, there are two downsides that I know to building on ubuntu instead of
> centos (independently on the compiler thing):
> - Firefox will only look for extra addons in /usr/lib64/mozilla/extensions
> and plugins in /usr/lib64/mozilla/plugins if it's built on centos. Building
> on ubuntu would change this behavior on our builds (see HAVE_USR_LIB64_DIR
> in toolkit/xre/* and xpcom/io/*). There might be other things.


This is weird. We should just fix this. Building on one linux distro shouldn't change our behavior on other distros.

> - The resulting Firefox will use new symbol versions from the glibc. In
> practice that means it's likely the resulting binary will not work on older
> distros it currently supports.

We'll need to fix this, but maybe we can find a solution that fits with the work to fix the first point.
No longer blocks: 1118394
bug 1179818 should fix the toolchain to not require the hacks.
Depends on: 1179818
No longer blocks: 1150261
It looks like bug 1189892 fixed this.
Assignee: winter2718 → dustin
Status: NEW → RESOLVED
Closed: 9 years ago
Depends on: 1189892
No longer depends on: 1179818
Resolution: --- → FIXED
Component: General Automation → General
You need to log in before you can comment on or make changes to this bug.