Closed Bug 1657321 Opened 4 years ago Closed 4 years ago

-ffreestanding leads to build issues with LLVM 8

Categories

(Core :: Audio/Video: Playback, defect)

79 Branch
All
OpenBSD
defect

Tracking

()

RESOLVED FIXED
81 Branch
Tracking Status
firefox81 --- fixed

People

(Reporter: gaston, Assigned: jhlin)

References

(Regression)

Details

(Keywords: regression)

Attachments

(1 file)

OpenBSD is in the process of updating its base & ports compiler to LLVM 10, in this process we've encountered a build issue when building with LLVM 8 from ports, which is also the compiler used to build rustc (llvm from base doesnt have/ship libclang.so).

The build fails (apparently due to include ordering) on media/ffvpx/libavutil/adler32.c with

media/ffvpx/libavutil/avstring.o
In file included from <built-in>:2:
In file included from /usr/obj/firefox-79.0/firefox-79.0/media/ffvpx/libavutil_visibility.h:26:
In file included from /usr/obj/firefox-79.0/firefox-79.0/media/ffvpx/libavutil/log.h:25:
In file included from /usr/obj/firefox-79.0/firefox-79.0/media/ffvpx/libavutil/avutil.h:296:
In file included from /usr/obj/firefox-79.0/firefox-79.0/media/ffvpx/libavutil/common.h:37:
/usr/local/lib/clang/8.0.1/include/stdint.h:228:25: error: typedef redefinition with different types ('int16_t' (aka 'short') vs '__int_fast16_t' (aka 'int'))
typedef __int_least16_t int_fast16_t;
                        ^
/usr/include/stdint.h:83:25: note: previous definition is here
typedef __int_fast16_t          int_fast16_t;
                                ^
In file included from <built-in>:2:
In file included from /usr/obj/firefox-79.0/firefox-79.0/media/ffvpx/libavutil_visibility.h:26:
In file included from /usr/obj/firefox-79.0/firefox-79.0/media/ffvpx/libavutil/log.h:25:
In file included from /usr/obj/firefox-79.0/firefox-79.0/media/ffvpx/libavutil/avutil.h:296:
In file included from /usr/obj/firefox-79.0/firefox-79.0/media/ffvpx/libavutil/common.h:37:
/usr/local/lib/clang/8.0.1/include/stdint.h:229:26: error: typedef redefinition with different types ('uint16_t' (aka 'unsigned short') vs '__uint_fast16_t' (aka 'unsigned int'))
typedef __uint_least16_t uint_fast16_t;
                         ^
/usr/include/stdint.h:84:26: note: previous definition is here
typedef __uint_fast16_t         uint_fast16_t;
                                ^
In file included from <built-in>:2:
In file included from /usr/obj/firefox-79.0/firefox-79.0/media/ffvpx/libavutil_visibility.h:26:
In file included from /usr/obj/firefox-79.0/firefox-79.0/media/ffvpx/libavutil/log.h:25:
In file included from /usr/obj/firefox-79.0/firefox-79.0/media/ffvpx/libavutil/avutil.h:296:
In file included from /usr/obj/firefox-79.0/firefox-79.0/media/ffvpx/libavutil/common.h:37:
/usr/local/lib/clang/8.0.1/include/stdint.h:245:24: error: typedef redefinition with different types ('int8_t' (aka 'signed char') vs '__int_fast8_t' (aka 'int'))
typedef __int_least8_t int_fast8_t;
                       ^
/usr/include/stdint.h:81:24: note: previous definition is here
typedef __int_fast8_t           int_fast8_t;
                                ^
In file included from <built-in>:2:
In file included from /usr/obj/firefox-79.0/firefox-79.0/media/ffvpx/libavutil_visibility.h:26:
In file included from /usr/obj/firefox-79.0/firefox-79.0/media/ffvpx/libavutil/log.h:25:
In file included from /usr/obj/firefox-79.0/firefox-79.0/media/ffvpx/libavutil/avutil.h:296:
In file included from /usr/obj/firefox-79.0/firefox-79.0/media/ffvpx/libavutil/common.h:37:
/usr/local/lib/clang/8.0.1/include/stdint.h:246:25: error: typedef redefinition with different types ('uint8_t' (aka 'unsigned char') vs '__uint_fast8_t' (aka 'unsigned int'))
typedef __uint_least8_t uint_fast8_t;
                        ^
/usr/include/stdint.h:82:25: note: previous definition is here
typedef __uint_fast8_t          uint_fast8_t;

this build failure also reproduces with 79.0 and 80.0b2. backing out https://hg.mozilla.org/mozreview/gecko/rev/c27bfe9107654c62c71b236e3389d9fbcf88e0a4 (ie removing -ffreestanding) fixes this build issue, as found out by me fellow developers.

from my understanding of Bug 1412240 this was added 3 years ago as a workaround for a LLVM bug encountered only on specific distributed build environment on automation, is it still needed ? Some of our developers feel using -ffreestanding is deeply wrong there.

Jean-Yves, do you think it's safe to revert bug 1412240?

Flags: needinfo?(jyavenard)

(In reply to John Lin [:jhlin][:jolin] from comment #1)

Jean-Yves, do you think it's safe to revert bug 1412240?

the bug is still opened on llvm ; however I don't know if building over distcc is important today now that we have sccache.

i personally no longer use it.

So removing this hackish workaround seems like the way to go.

Flags: needinfo?(jyavenard)

The severity field is not set for this bug.
:bryce, could you have a look please?

For more information, please visit auto_nag documentation.

Flags: needinfo?(bvandyk)

John, are you able to keep looking at this?

Severity: -- → S2
Flags: needinfo?(bvandyk) → needinfo?(jolin)

(In reply to Bryce Seager van Dyk (:bryce) from comment #4)

John, are you able to keep looking at this?

Yes. I'll revert bug 1421140 for this as discussed in comment 2.

Assignee: nobody → jolin
Flags: needinfo?(jolin)

Revert bug 1412240. It was a workaround for a LLVM bug and only
relevant when icecc is involved. Since sccache-dist is preferred
now, it's no longer needed.

Pushed by jolin@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/a6af82c5ceea
ffvpx: undo build error workarounds. r=jya
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 81 Branch
Has Regression Range: --- → yes
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: