Closed Bug 1255305 Opened 4 years ago Closed 4 years ago

Move --host and --target to moz.configure

Categories

(Firefox Build System :: General, defect)

defect
Not set

Tracking

(firefox48 fixed)

RESOLVED FIXED
mozilla48
Tracking Status
firefox48 --- fixed

People

(Reporter: glandium, Assigned: glandium)

References

(Blocks 2 open bugs)

Details

Attachments

(4 files)

A lot of things in old-configure have different defaults and such depending on the host/target platform, so to move those things, sooner or later, we'll need to have a knowledge of the host/target platform in moz.configure. This doesn't require the entire setup of the toolchain, but it a step in that direction.
Depends on: 1255763
With all the things that still depend on all the variables derived from
--host and --target in both old-configure and moz.build, we still need
to keep variables such as OS_ARCH, OS_TARGET, CPU_ARCH, OS_TEST, etc.

Eventually, we'd settle on the output of split_triplet.

This /tries/ to preserve the current values for all these variables,
while also trying to make things a little more consistent. It also
effectively rejects OSes such as HPUX or AIX, because it is unclear
the decades old accumulated scripts related to them still do anything
useful, and we might as well have them start again from scratch, which,
in the coming weeks, will be even easier.

Review commit: https://reviewboard.mozilla.org/r/39503/diff/#index_header
See other reviews: https://reviewboard.mozilla.org/r/39503/
Attachment #8729573 - Flags: review?(cmanchester)
Comment on attachment 8729569 [details]
MozReview Request: Bug 1255305 - Uniformize CPU_ARCH between old-configure.in and js/src/old-configure.in

https://reviewboard.mozilla.org/r/39497/#review36249
Attachment #8729569 - Flags: review?(cmanchester) → review+
Comment on attachment 8729571 [details]
MozReview Request: Bug 1255305 - Move the function finding a shell from old.configure to init.configure

https://reviewboard.mozilla.org/r/39499/#review36251
Attachment #8729571 - Flags: review?(cmanchester) → review+
Comment on attachment 8729572 [details]
MozReview Request: Bug 1255305 - Generalize adding arguments to old-configure

https://reviewboard.mozilla.org/r/39501/#review36253
Attachment #8729572 - Flags: review?(cmanchester) → review+
Comment on attachment 8729573 [details]
MozReview Request: Bug 1255305 - Move --host and --target to moz.configure

https://reviewboard.mozilla.org/r/39503/#review36419

::: build/moz.configure/init.configure:321
(Diff revision 1)
> +    if cpu.endswith('86') or cpu == 'i86pc' or (cpu.startswith('i') and
> +                                                '86' in cpu):
> +        canonical_cpu = 'x86'

`cpu == 'i86pc'` implies `cpu.startswith('i') and '86' in cpu`, so this expression could be simplified. (I know this consolidates multiple checks, if you think this is clearer just leave it).

::: old-configure.in
(Diff revision 1)
> -        if test -z "$CROSS_COMPILE" ; then
> -            OS_TEST=`uname -p`
> -        fi

Tests invoking `uname` and checking `CROSS_COMPILE` aren't ported to the new configure. I'm trusting that this is intentional, and are either already no-ops or not relevant to builds except those we're intentionally not moving over at this time.
Attachment #8729573 - Flags: review?(cmanchester) → review+
(In reply to Chris Manchester (:chmanchester) from comment #8)
> Tests invoking `uname` and checking `CROSS_COMPILE` aren't ported to the new
> configure. I'm trusting that this is intentional, and are either already
> no-ops or not relevant to builds except those we're intentionally not moving
> over at this time.

Both builds with and without CROSS_COMPILE have a --target, and --target is now the canonical base for OS_TEST, ensuring, more than before, that cross compiles and non-cross compiles do use the same OS_TEST values.
(In reply to Mike Hommey [:glandium] from comment #4)
> Created attachment 8729573 [details]
> MozReview Request: Bug 1255305 - Move --host and --target to moz.configure
> 
> With all the things that still depend on all the variables derived from
> --host and --target in both old-configure and moz.build, we still need
> to keep variables such as OS_ARCH, OS_TARGET, CPU_ARCH, OS_TEST, etc.
> 
> Eventually, we'd settle on the output of split_triplet.
> 
> This /tries/ to preserve the current values for all these variables,
> while also trying to make things a little more consistent. It also
> effectively rejects OSes such as HPUX or AIX, because it is unclear
> the decades old accumulated scripts related to them still do anything
> useful, and we might as well have them start again from scratch, which,
> in the coming weeks, will be even easier.
> 
> Review commit: https://reviewboard.mozilla.org/r/39503/diff/#index_header
> See other reviews: https://reviewboard.mozilla.org/r/39503/

Hi glandium,

We cannot build B2G (nexusplayer-l) after this commit.

On Linux the error is:
> configure: error: Necko WiFi scanning needs DBus on your platform, remove --disable-dbus or use --disable-necko-wifi

On Mac the error is:
> configure: error: Need alsa for audio output on Linux. (On Ubuntu, you might try installing the package libasound2-dev.)

Do you have any idea?
Flags: needinfo?(mh+mozilla)
(In reply to Gary Chen [:xeonchen] from comment #12)
> Hi glandium,
> 
> We cannot build B2G (nexusplayer-l) after this commit.
> 
> On Linux the error is:
> > configure: error: Necko WiFi scanning needs DBus on your platform, remove --disable-dbus or use --disable-necko-wifi
> 
> On Mac the error is:
> > configure: error: Need alsa for audio output on Linux. (On Ubuntu, you might try installing the package libasound2-dev.)
> 
> Do you have any idea?

Please file a bug blocking this one with mozconfig and full build log.
Flags: needinfo?(mh+mozilla)
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.