Bug 39852 - moz module fails to build in build environment, builds fine in empty environment
Summary: moz module fails to build in build environment, builds fine in empty environment
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: LibreOffice (show other bugs)
Version:
(earliest affected)
3.4 Daily
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-08-05 01:45 UTC by Lionel Elie Mamane
Modified: 2011-11-30 03:18 UTC (History)
0 users

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Lionel Elie Mamane 2011-08-05 01:45:02 UTC
If I do, from the bootstrap repository (which is in /home/master:src/libreoffice-3.4 and configured with --prefix=/home/master/src/usr-3.4):

source ./LinuxX86-64Env.Set.sh
cd moz
build

Then it fails to build:


cd liblber; /usr/bin/make export
make[5]: Entering directory `/home/master/src/libreoffice/libreoffice-3.4/clone/libs-extern-sys/moz/unxlngx6/misc/build/mozilla/X_objdir/directory/c-sdk/ldap/libraries/liblber'
/home/master/src/usr-3.4/lib
make[5]: /home/master/src/usr-3.4/lib: Command not found
make[5]: *** [/home/master/src/usr-3.4/lib] Error 127
make[5]: Leaving directory `/home/master/src/libreoffice/libreoffice-3.4/clone/libs-extern-sys/moz/unxlngx6/misc/build/mozilla/X_objdir/directory/c-sdk/ldap/libraries/liblber'
make[4]: *** [export] Error 2
make[4]: Leaving directory `/home/master/src/libreoffice/libreoffice-3.4/clone/libs-extern-sys/moz/unxlngx6/misc/build/mozilla/X_objdir/directory/c-sdk/ldap/libraries'
make[3]: *** [export] Error 2
make[3]: Leaving directory `/home/master/src/libreoffice/libreoffice-3.4/clone/libs-extern-sys/moz/unxlngx6/misc/build/mozilla/X_objdir/directory/c-sdk/ldap'
make[2]: *** [export] Error 2
make[2]: Leaving directory `/home/master/src/libreoffice/libreoffice-3.4/clone/libs-extern-sys/moz/unxlngx6/misc/build/mozilla/X_objdir/directory/c-sdk'
make[1]: *** [ldap] Error 2
make[1]: Leaving directory `/home/master/src/libreoffice/libreoffice-3.4/clone/libs-extern-sys/moz/unxlngx6/misc/build/mozilla/X_objdir'
make: *** [default] Error 2
dmake:  Error code 2, while making './unxlngx6/misc/build/so_built_ooo_mozab'


Naturally, the moz module also fails if I do "make" from the bootstrap root directory.

But if I open a _fresh_ shell, DO NOT source LinuxX86-64Env.Set.sh and do:

cd /home/master/src/libreoffice/libreoffice-3.4/clone/libs-extern-sys/moz/unxlngx6/misc/build/mozilla/X_objdir/directory/c-sdk/ldap/libraries/liblber
make

then it builds fine:

/home/master/src/libreoffice/libreoffice-3.4/moz/unxlngx6/misc/build/mozilla/X_objdir/dist/bin/nsinstall -R -m 444 ./liblber50.a /home/master/src/libreoffice/libreoffice-3.4/moz/unxlngx6/misc/build/mozilla/X_objdir/dist/lib

Probably something in the build environment confuses the moz build system, overwriting some of its internals or leading to a different .mk file being included than what was meant. Ah yes, if I do:

source ./LinuxX86-64Env.Set.sh
cd moz
unset LIBDIR
build

it works fine, and I can go back to bootstrap and do "make" there.


Full bootstrap autoconf options:

'--prefix=/home/master/src/usr-3.4' '--with-num-cpus=4' '--with-max-jobs=4' '--enable-debug' '--enable-dbgutil' '--enable-crashdump' '--enable-dependency-tracking' '--with-extension-integration' '--with-system-libs' '--with-system-headers' '--without-system-mozilla' '--with-build-version=(LEM development build)' '--with-system-odbc' '--with-system-sane' '--with-system-xrender-headers' '--disable-zenity' '--enable-ext-report-builder' '--without-system-jars' '--with-openldap' '--without-system-lpsolve' '--enable-ext-mysql-connector' '--with-system-mysql'



Running make with debugging enabled:

NOT WORKING case:


onsidering target file `all'.
 File `all' does not exist.
  Considering target file `export'.
   File `export' does not exist.
   Finished prerequisites of target file `export'.
  Target `export' is double-colon and has no prerequisites.
  Must remake target `export'.
Invoking recipe from ../../../../../../directory/c-sdk/config/rules.mk:202 to update target `export'.
  Successfully remade target file `export'.
  Considering target file `export'.
   File `export' does not exist.
    Considering target file `/home/master/src/usr-3.4/lib'.
     File `/home/master/src/usr-3.4/lib' does not exist.
     Finished prerequisites of target file `/home/master/src/usr-3.4/lib'.
    Must remake target `/home/master/src/usr-3.4/lib'.
Invoking recipe from Makefile:86 to update target `/home/master/src/usr-3.4/lib'.
/home/master/src/usr-3.4/lib



WORKING case:



Considering target file `all'.
 File `all' does not exist.
  Considering target file `export'.
   File `export' does not exist.
   Finished prerequisites of target file `export'.
  Target `export' is double-colon and has no prerequisites.
  Must remake target `export'.
Invoking recipe from ../../../../../../directory/c-sdk/config/rules.mk:202 to update target `export'.
  Successfully remade target file `export'.
  Considering target file `export'.
   File `export' does not exist.
    Considering target file `decode.o'.
     Looking for an implicit rule for `decode.o'.
     Trying pattern rule with stem `decode'.
     Trying implicit prerequisite `decode.cpp'.
     Trying pattern rule with stem `decode'.
     Trying implicit prerequisite `decode.c'.
     Found prerequisite `decode.c' as VPATH `../../../../../../directory/c-sdk/ldap/libraries/liblber/decode.c'
     Found an implicit rule for `decode.o'.
      Considering target file `decode.c'.
       Looking for an implicit rule for `decode.c'.
       No implicit rule found for `decode.c'.
       Finished prerequisites of target file `decode.c'.
      No need to remake target `decode.c'; using VPATH name `../../../../../../directory/c-sdk/ldap/libraries/liblber/decode.c'.
      Considering target file `../../../../../../directory/c-sdk/config/prdepend.h'.
       Looking for an implicit rule for `../../../../../../directory/c-sdk/config/prdepend.h'.
       No implicit rule found for `../../../../../../directory/c-sdk/config/prdepend.h'.
       Finished prerequisites of target file `../../../../../../directory/c-sdk/config/prdepend.h'.
      No need to remake target `../../../../../../directory/c-sdk/config/prdepend.h'.
     Finished prerequisites of target file `decode.o'.
     Prerequisite `../../../../../../directory/c-sdk/ldap/libraries/liblber/decode.c' is older than target `decode.o'.
     Prerequisite `../../../../../../directory/c-sdk/config/prdepend.h' is older than target `decode.o'.

    No need to remake target `decode.o'.
    Considering target file `encode.o'.
     Looking for an implicit rule for `encode.o'.
     Trying pattern rule with stem `encode'.
     Trying implicit prerequisite `encode.cpp'.
     Trying pattern rule with stem `encode'.
     Trying implicit prerequisite `encode.c'.
     Found prerequisite `encode.c' as VPATH `../../../../../../directory/c-sdk/ldap/libraries/liblber/encode.c'
     Found an implicit rule for `encode.o'.
      Considering target file `encode.c'.
       Looking for an implicit rule for `encode.c'.
       No implicit rule found for `encode.c'.
       Finished prerequisites of target file `encode.c'.
      No need to remake target `encode.c'; using VPATH name `../../../../../../directory/c-sdk/ldap/libraries/liblber/encode.c'.
      Pruning file `../../../../../../directory/c-sdk/config/prdepend.h'.
     Finished prerequisites of target file `encode.o'.
     Prerequisite `../../../../../../directory/c-sdk/ldap/libraries/liblber/encode.c' is older than target `encode.o'.
     Prerequisite `../../../../../../directory/c-sdk/config/prdepend.h' is older than target `encode.o'.
    No need to remake target `encode.o'.
    Considering target file `io.o'.
     Looking for an implicit rule for `io.o'.
     Trying pattern rule with stem `io'.
     Trying implicit prerequisite `io.cpp'.
     Trying pattern rule with stem `io'.
     Trying implicit prerequisite `io.c'.
     Found prerequisite `io.c' as VPATH `../../../../../../directory/c-sdk/ldap/libraries/liblber/io.c'
     Found an implicit rule for `io.o'.
      Considering target file `io.c'.
       Looking for an implicit rule for `io.c'.
       No implicit rule found for `io.c'.
       Finished prerequisites of target file `io.c'.
      No need to remake target `io.c'; using VPATH name `../../../../../../directory/c-sdk/ldap/libraries/liblber/io.c'.
      Pruning file `../../../../../../directory/c-sdk/config/prdepend.h'.
     Finished prerequisites of target file `io.o'.
     Prerequisite `../../../../../../directory/c-sdk/ldap/libraries/liblber/io.c' is older than target `io.o'.
     Prerequisite `../../../../../../directory/c-sdk/config/prdepend.h' is older than target `io.o'.
    No need to remake target `io.o'.
    Considering target file `bprint.o'.
     Looking for an implicit rule for `bprint.o'.
     Trying pattern rule with stem `bprint'.
     Trying implicit prerequisite `bprint.cpp'.
     Trying pattern rule with stem `bprint'.
     Trying implicit prerequisite `bprint.c'.
     Found prerequisite `bprint.c' as VPATH `../../../../../../directory/c-sdk/ldap/libraries/liblber/bprint.c'
     Found an implicit rule for `bprint.o'.
      Considering target file `bprint.c'.
       Looking for an implicit rule for `bprint.c'.
       No implicit rule found for `bprint.c'.
       Finished prerequisites of target file `bprint.c'.
      No need to remake target `bprint.c'; using VPATH name `../../../../../../directory/c-sdk/ldap/libraries/liblber/bprint.c'.

      Pruning file `../../../../../../directory/c-sdk/config/prdepend.h'.
     Finished prerequisites of target file `bprint.o'.
     Prerequisite `../../../../../../directory/c-sdk/ldap/libraries/liblber/bprint.c' is older than target `bprint.o'.
     Prerequisite `../../../../../../directory/c-sdk/config/prdepend.h' is older than target `bprint.o'.
    No need to remake target `bprint.o'.
    Considering target file `liblber50.a'.
      Pruning file `decode.o'.
      Pruning file `encode.o'.
      Pruning file `io.o'.
      Pruning file `bprint.o'.
     Finished prerequisites of target file `liblber50.a'.
     Prerequisite `decode.o' is older than target `liblber50.a'.
     Prerequisite `encode.o' is older than target `liblber50.a'.
     Prerequisite `io.o' is older than target `liblber50.a'.
     Prerequisite `bprint.o' is older than target `liblber50.a'.
    No need to remake target `liblber50.a'.
   Finished prerequisites of target file `export'.
  Must remake target `export'.
  Successfully remade target file `export'.
  Considering target file `export'.
   File `export' does not exist.
    Pruning file `liblber50.a'.
   Finished prerequisites of target file `export'.
  Must remake target `export'.
Invoking recipe from Makefile:101 to update target `export'.
/home/master/src/libreoffice/libreoffice-3.4/moz/unxlngx6/misc/build/mozilla/X_objdir/dist/bin/nsinstall -R -m 444 ./liblber50.a /home/master/src/libreoffice/libreoffice-3.4/moz/unxlngx6/misc/build/mozilla/X_objdir/dist/lib
Comment 1 Lionel Elie Mamane 2011-09-06 22:10:19 UTC
Workaround:

 source Host.Env.sh
 unset LIBDIR
 cd moz
 build
 cd ..
 make
Comment 2 Lionel Elie Mamane 2011-11-30 03:18:30 UTC
I fixed this in commit 34a3046698890676d492d46dfb628d51eb823395 on Wed Sep 7 11:11:18 2011 +0200