Closed
Bug 983945
Opened 11 years ago
Closed 11 years ago
Handle an NSPR configure script generated with autoconf 2.68
Categories
(Firefox Build System :: General, defect, P2)
Firefox Build System
General
Tracking
(Not tracked)
RESOLVED
FIXED
mozilla31
People
(Reporter: wtc, Assigned: wtc)
References
Details
Attachments
(1 file, 1 obsolete file)
2.35 KB,
patch
|
glandium
:
review+
|
Details | Diff | Splinter Review |
To work with an NSPR configure script generated with autoconf 2.68 or
autoconf 2.69, some changes are needed in configure.in.
1. The cache.config file cannot be shared because NSPR's configure
script will exit with errors like these:
================================================================
configuring in nsprpub
running /bin/sh /builds/slave/try-and-x86-000000000000000000/build/nsprpub/configure --enable-crashreporter --enable-release --enable-elf-hack --enable-application=mobile/android --target=arm-linux-androideabi --with-android-ndk=/builds/slave/try-and-x86-000000000000000000/build/android-ndk --with-android-sdk=/builds/slave/try-and-x86-000000000000000000/build/android-sdk-linux/platforms/android-16 --with-android-gnu-compiler-version=4.7 --with-android-version=9 --with-system-zlib --enable-update-channel= --enable-warnings-as-errors '--with-compiler-wrapper=python2.7 /builds/slave/try-and-x86-000000000000000000/build/sccache/sccache.py' --enable-stdcxx-compat --target=i386-linux-android --enable-profiling --disable-elf-hack --with-branding=mobile/android/branding/nightly --with-dist-prefix=/builds/slave/try-and-x86-000000000000000000/build/obj-firefox/dist --with-mozilla --disable-debug --enable-optimize --with-android-toolchain=/builds/slave/try-and-x86-000000000000000000/build/android-ndk/toolchains/x86-4.7/prebuilt/linux-x86_64 --with-android-version=9 --cache-file=.././config.cache --srcdir=/builds/slave/try-and-x86-000000000000000000/build/nsprpub
configure: WARNING: unrecognized options: --enable-crashreporter, --enable-release, --enable-elf-hack, --enable-application, --with-android-sdk, --with-android-gnu-compiler-version, --with-system-zlib, --enable-update-channel, --enable-warnings-as-errors, --with-compiler-wrapper, --enable-stdcxx-compat, --enable-profiling, --disable-elf-hack, --with-branding
configure: loading cache .././config.cache
configure: error: `host_alias' was set to `i386-linux-android' in the previous run
configure: error: `CFLAGS' has changed since the previous run:
configure: former value: `-Wall -Wpointer-arith -Wdeclaration-after-statement -Werror=return-type -Werror=int-to-pointer-cast -Wtype-limits -Wempty-body -Wsign-compare -Wno-unused -Wcast-align -Wno-error=uninitialized -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -mandroid -fno-short-enums -fno-exceptions -std=gnu99 -fgnu89-inline -fno-strict-aliasing -ffunction-sections -fdata-sections -fno-math-errno -pipe -g -std=c99'
configure: current value: ` -fno-omit-frame-pointer -funwind-tables'
configure: error: `LDFLAGS' has changed since the previous run:
configure: former value: ` -mandroid -L/builds/slave/try-and-x86-000000000000000000/build/android-ndk/platforms/android-9/arch-x86/usr/lib -Wl,-rpath-link=/builds/slave/try-and-x86-000000000000000000/build/android-ndk/platforms/android-9/arch-x86/usr/lib --sysroot=/builds/slave/try-and-x86-000000000000000000/build/android-ndk/platforms/android-9/arch-x86 -llog -Wl,--allow-shlib-undefined -Wl,-z,noexecstack -Wl,-z,text -Wl,--build-id -Wl,--icf=safe '
configure: current value: ` -Wl,-z,text -Wl,--build-id'
configure: error: `CPPFLAGS' has changed since the previous run:
configure: former value: `-idirafter /builds/slave/try-and-x86-000000000000000000/build/android-ndk/platforms/android-9/arch-x86/usr/include -g'
configure: current value: `'
configure: error: in `/builds/slave/try-and-x86-000000000000000000/build/obj-firefox/nsprpub':
configure: error: changes in the environment can compromise the build
configure: error: run `make distclean' and/or `rm .././config.cache' and start over
configure: error: /builds/slave/try-and-x86-000000000000000000/build/nsprpub/configure failed for nsprpub
================================================================
As a result, the top-level configure script and NSPR's configure
script cannot share a config.cache file. I copied some of the
changes from the arguments for libffi's configure script in
build/autoconf/ffi.m4.
2. If --host= is set but --build= isn't, NSPR's configure script
emits this warning message:
configure: WARNING: if you wanted to set the --build type, don't use --host.
If a cross compiler is detected then cross compile mode will be used
The patch fixes these problems.
Note: the error about "host_alias" in #1 seems to be caused by passing
--host=i386-linux-android to build/modules/freetype2/configure and
build/modules/freetype2/builds/unix/configure, which recorded host_alias
in the shared config.cache file. If so, it is a separate bug. Also note
that in that try build, we seem to pass two conflicting --target= options:
================================================================
cp /builds/slave/try-and-x86-000000000000000000/build/.mozconfig obj-firefox/.mozconfig
cd obj-firefox
/builds/slave/try-and-x86-000000000000000000/build/configure
Adding configure options from /builds/slave/try-and-x86-000000000000000000/build/.mozconfig:
--enable-crashreporter
--enable-release
--enable-elf-hack
--enable-application=mobile/android
--target=arm-linux-androideabi
--with-android-ndk=/builds/slave/try-and-x86-000000000000000000/build/android-ndk
--with-android-sdk=/builds/slave/try-and-x86-000000000000000000/build/android-sdk-linux/platforms/android-16
--with-android-gnu-compiler-version=4.7
--with-android-version=9
--with-system-zlib
--enable-update-channel=
--enable-warnings-as-errors
--with-compiler-wrapper=python2.7 /builds/slave/try-and-x86-000000000000000000/build/sccache/sccache.py
--enable-stdcxx-compat
--target=i386-linux-android
--enable-profiling
--disable-elf-hack
--with-branding=mobile/android/branding/nightly
================================================================
See https://tbpl.mozilla.org/php/getParsedLog.php?id=36034260&tree=Try&full=1#error0
for the full build log.
Attachment #8391665 -
Flags: review?(mh+mozilla)
Comment 1•11 years ago
|
||
Comment on attachment 8391665 [details] [diff] [review]
Patch
Review of attachment 8391665 [details] [diff] [review]:
-----------------------------------------------------------------
r=me with the following addressed.
::: configure.in
@@ +9012,5 @@
> export LDFLAGS="$LDFLAGS $NSPR_LDFLAGS"
> export CFLAGS="$CFLAGS $MOZ_FRAMEPTR_FLAGS"
>
> + # Use a separate cache file for NSPR since it uses autoconf 2.68.
> + mkdir -p $_objdir/nsprpub
You shouldn't need to create the directory.
@@ +9013,5 @@
> export CFLAGS="$CFLAGS $MOZ_FRAMEPTR_FLAGS"
>
> + # Use a separate cache file for NSPR since it uses autoconf 2.68.
> + mkdir -p $_objdir/nsprpub
> + old_cache_file=$cache_file
_save_cache_file
@@ +9016,5 @@
> + mkdir -p $_objdir/nsprpub
> + old_cache_file=$cache_file
> + cache_file=$_objdir/nsprpub/config.cache
> + old_config_files=$CONFIG_FILES
> + unset CONFIG_FILES
we already unset earlier.
Attachment #8391665 -
Flags: review?(mh+mozilla) → review+
Comment 2•11 years ago
|
||
Note this is going, sadly, to make configure even slower than it already is on windows...
Comment 3•11 years ago
|
||
(which makes me wonder if we should really do it, gps, what do you think?)
Flags: needinfo?(gps)
Comment 4•11 years ago
|
||
More build slowness in configure saddens me. But if it's necessary to avoid bugs, then I suppose our hands are bound.
I do wonder if we can eventually have Python orchestrate configure invocations. We might be able to perform some interesting caching. e.g. maintain hashes of all files in the source tree and don't run configure unless things have changed. This would also help with ICU. But that's for another day.
Flags: needinfo?(gps)
Assignee | ||
Comment 5•11 years ago
|
||
Mike:
Thank you for the review. I made the changes you
suggested. I found you wrote similar glue code for
jemalloc's configure script, so I also added quotes
to $cache_file and $_save_cache_file as you did.
Patch pushed to mozilla-inbound:
https://hg.mozilla.org/integration/mozilla-inbound/rev/1bb7e442dfbb
Attachment #8391665 -
Attachment is obsolete: true
Attachment #8397057 -
Flags: review?(mh+mozilla)
Attachment #8397057 -
Flags: checkin+
Assignee | ||
Comment 6•11 years ago
|
||
Comment on attachment 8397057 [details] [diff] [review]
Patch v2
Review of attachment 8397057 [details] [diff] [review]:
-----------------------------------------------------------------
::: configure.in
@@ +9165,5 @@
> fi
> export LDFLAGS="$LDFLAGS $NSPR_LDFLAGS"
> export CFLAGS="$CFLAGS $MOZ_FRAMEPTR_FLAGS"
>
> + # Use a separate cache file for NSPR since it uses autoconf 2.68.
Mike: the changes in patch v2 start here. So you just need to check from this line to the end of the patch.
Comment 7•11 years ago
|
||
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla31
Updated•11 years ago
|
Attachment #8397057 -
Flags: review?(mh+mozilla) → review+
Updated•7 years ago
|
Product: Core → Firefox Build System
You need to log in
before you can comment on or make changes to this bug.
Description
•