configure fails with posix make #4

Open
opened 2024-03-11 17:03:58 +00:00 by orbea · 3 comments

OS: Gentoo
sofort: slibtool/dbd501be3a1f22332c162711671da673a0db7825
bmake: 20230909

When MAKE=bmake is set in the environment then ./configure fails.

$ export MAKE=bmake
$ ./configure 
slibtool : configure : init_vars  .................................  OK.
slibtool : configure : verify_build_directory  ....................  OK.
slibtool : configure : verify_source_directory  ...................  OK.
slibtool : configure : verify_source_info  ........................  OK.
slibtool : configure : common_defaults  ...........................  bmake: stopped in /tmp/slibtool
OK.
slibtool : configure : config_flags  ..............................  OK.
slibtool : configure : config_copy  ...............................  OK.
 ..
slibtool : configure : detect and query host (targeted) system
 == checking for C compiler  ......................................  cc.
 == checking for C pre-processor  ................................  cpp.
 == checking for C++ compiler  ...................................  c++.
 == checking for ar  ..............................................  ar.
 == checking for nm  ..............................................  nm.
 == checking for objdump  ....................................  objdump.
 == checking for ranlib  ......................................  ranlib.
 == checking for size  ..........................................  size.
 == checking for strip  ........................................  strip.
 == checking for strings  ....................................  strings.
 == checking for objcopy  ....................................  objcopy.
 == checking for addr2line  ................................  addr2line.
 == checking for cov  .......................................  llvm-cov.
 == checking for elfedit  ....................................  elfedit.
 == checking for readelf  ....................................  readelf.
 == checking for readobj  ...............................  llvm-readobj.
 == checking for otool  ...................................  llvm-otool.
 == checking for perk  .........................................  false.
 == checking for mdso  .........................................  false.
 == checking for dlltool  ....................................  dlltool.
 == checking for windmc  .......................................  false.
 == checking for windres  ....................................  windres.
 == checking for pkgconf  ....................................  pkgconf.
 == checking for as (asm)  ........................................  as.
 == checking for as (ll)  ....................................  llvm-as.
 == checking for as (mc)  ....................................  llvm-mc.
 == checking for ld (bfd)  ....................................  ld.bfd.
 == checking for ld (gold)  ....................................  false.
 == checking for ld (lld)  .......................................  lld.
 == checking for objdump (bfd)  ................................  false.
 == checking for objdump (llvm)  ........................  llvm-objdump.
 == checking for readelf (bfd)  ................................  false.
 == checking for readelf (llvm)  ........................  llvm-readelf.
 == detect host system  .........................  x86_64-unknown-linux.
 == detect host bits  .............................................  64.
 == detect host binary format  ...................................  ELF.
 == detect host prepended underscores .............................  no.
 == detect host os name  .......................................  linux.
 == detect host os semantics  ...................  elf-posix-linux-ldso.
 == detect host os dso format  ...................................  ELF.
 == detect host os dso exrules  ..............................  default.
 == detect host os linkage  ..................................  default.
 == trying host compiler visibility attr: default  ...........  (error).
 == trying host compiler visibility attr: hidden  ............  (error).
 == trying host compiler visibility attr: internal  ..........  (error).
 == trying host compiler visibility attr: protected  .........  (error).

In config.log I see many instances of this error.

cc: fatal error: cannot specify '-o' with '-c', '-S' or '-E' with multiple files
cfgtest: probing for host compiler switch: -dumpmachine

cc -S -xc - -o - \
        -DSLBT_MACHINE=\"\" \
        -D_XOPEN_SOURCE=700 \
        -D_DEFAULT_SOURCE \
        -D_BSD_SOURCE \
        -I./src/internal \
        -I./include \
        -Ibuild \
        -DSLBT_TAG_VER_MAJOR=0 \
        -DSLBT_TAG_VER_MINOR=5 \
        -DSLBT_TAG_VER_PATCH=35 \
        } \
        || \
        exit \
        $? \
        -Llib \
        } \
        || \
        exit \
        $? \
        -dumpmachine \
<< _SRCEOF
int fn(void){return 0;}
_SRCEOF


cc: fatal error: cannot specify '-o' with '-c', '-S' or '-E' with multiple files
compilation terminated.
./configure: exit: too many arguments

It does work if MAKE=gmake is exported in the environment instead.

Additionally the slibtool build works with bmake MAKEMODE=posix, but exporting MAKEMODE in the environment does not allow the configure to complete.

OS: `Gentoo` sofort: [slibtool/dbd501be3a1f22332c162711671da673a0db7825](https://dev.midipix.org/cross/slibtool/commit/dbd501be3a1f22332c162711671da673a0db7825?branch=main) bmake: `20230909` When `MAKE=bmake` is set in the environment then `./configure` fails. ``` $ export MAKE=bmake $ ./configure slibtool : configure : init_vars ................................. OK. slibtool : configure : verify_build_directory .................... OK. slibtool : configure : verify_source_directory ................... OK. slibtool : configure : verify_source_info ........................ OK. slibtool : configure : common_defaults ........................... bmake: stopped in /tmp/slibtool OK. slibtool : configure : config_flags .............................. OK. slibtool : configure : config_copy ............................... OK. .. slibtool : configure : detect and query host (targeted) system == checking for C compiler ...................................... cc. == checking for C pre-processor ................................ cpp. == checking for C++ compiler ................................... c++. == checking for ar .............................................. ar. == checking for nm .............................................. nm. == checking for objdump .................................... objdump. == checking for ranlib ...................................... ranlib. == checking for size .......................................... size. == checking for strip ........................................ strip. == checking for strings .................................... strings. == checking for objcopy .................................... objcopy. == checking for addr2line ................................ addr2line. == checking for cov ....................................... llvm-cov. == checking for elfedit .................................... elfedit. == checking for readelf .................................... readelf. == checking for readobj ............................... llvm-readobj. == checking for otool ................................... llvm-otool. == checking for perk ......................................... false. == checking for mdso ......................................... false. == checking for dlltool .................................... dlltool. == checking for windmc ....................................... false. == checking for windres .................................... windres. == checking for pkgconf .................................... pkgconf. == checking for as (asm) ........................................ as. == checking for as (ll) .................................... llvm-as. == checking for as (mc) .................................... llvm-mc. == checking for ld (bfd) .................................... ld.bfd. == checking for ld (gold) .................................... false. == checking for ld (lld) ....................................... lld. == checking for objdump (bfd) ................................ false. == checking for objdump (llvm) ........................ llvm-objdump. == checking for readelf (bfd) ................................ false. == checking for readelf (llvm) ........................ llvm-readelf. == detect host system ......................... x86_64-unknown-linux. == detect host bits ............................................. 64. == detect host binary format ................................... ELF. == detect host prepended underscores ............................. no. == detect host os name ....................................... linux. == detect host os semantics ................... elf-posix-linux-ldso. == detect host os dso format ................................... ELF. == detect host os dso exrules .............................. default. == detect host os linkage .................................. default. == trying host compiler visibility attr: default ........... (error). == trying host compiler visibility attr: hidden ............ (error). == trying host compiler visibility attr: internal .......... (error). == trying host compiler visibility attr: protected ......... (error). ``` In `config.log` I see many instances of this error. ``` cc: fatal error: cannot specify '-o' with '-c', '-S' or '-E' with multiple files ``` ``` cfgtest: probing for host compiler switch: -dumpmachine cc -S -xc - -o - \ -DSLBT_MACHINE=\"\" \ -D_XOPEN_SOURCE=700 \ -D_DEFAULT_SOURCE \ -D_BSD_SOURCE \ -I./src/internal \ -I./include \ -Ibuild \ -DSLBT_TAG_VER_MAJOR=0 \ -DSLBT_TAG_VER_MINOR=5 \ -DSLBT_TAG_VER_PATCH=35 \ } \ || \ exit \ $? \ -Llib \ } \ || \ exit \ $? \ -dumpmachine \ << _SRCEOF int fn(void){return 0;} _SRCEOF cc: fatal error: cannot specify '-o' with '-c', '-S' or '-E' with multiple files compilation terminated. ./configure: exit: too many arguments ``` It does work if `MAKE=gmake` is exported in the environment instead. Additionally the slibtool build works with `bmake MAKEMODE=posix`, but exporting `MAKEMODE` in the environment does not allow the configure to complete.
Author

Also ./configure --make=bmake exposes this issue.

Also `./configure --make=bmake` exposes this issue.
Author

With the default environment.

cfgtest: probing for host compiler switch: -dumpmachine

cc -S -xc - -o - \
        -DSLBT_MACHINE=\"\" \
        -D_XOPEN_SOURCE=700 \
        -D_DEFAULT_SOURCE \
        -D_BSD_SOURCE \
        -I./src/internal \
        -I./include \
        -Ibuild \
        -DSLBT_TAG_VER_MAJOR=0 \
        -DSLBT_TAG_VER_MINOR=5 \
        -DSLBT_TAG_VER_PATCH=35 \
        -Llib \
        -dumpmachine \
<< _SRCEOF
int fn(void){return 0;}
_SRCEOF


cfgtest: the switch `-dumpmachine' was accepted by the compier.
With the default environment. ``` cfgtest: probing for host compiler switch: -dumpmachine cc -S -xc - -o - \ -DSLBT_MACHINE=\"\" \ -D_XOPEN_SOURCE=700 \ -D_DEFAULT_SOURCE \ -D_BSD_SOURCE \ -I./src/internal \ -I./include \ -Ibuild \ -DSLBT_TAG_VER_MAJOR=0 \ -DSLBT_TAG_VER_MINOR=5 \ -DSLBT_TAG_VER_PATCH=35 \ -Llib \ -dumpmachine \ << _SRCEOF int fn(void){return 0;} _SRCEOF cfgtest: the switch `-dumpmachine' was accepted by the compier. ```
Author

The problem appears to be here:

        -DSLBT_TAG_VER_PATCH=35 \
        } \
        || \
        exit \
        $? \
        -Llib \
        } \
        || \
        exit \
        $? \
        -dumpmachine \
The problem appears to be here: ``` -DSLBT_TAG_VER_PATCH=35 \ } \ || \ exit \ $? \ -Llib \ } \ || \ exit \ $? \ -dumpmachine \ ```
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
devmods/sofort#4
No description provided.