gagolews / stringi

Fast and portable character string processing in R (with the Unicode ICU)
https://stringi.gagolewski.com/
Other
304 stars 44 forks source link

Unable to install 1.1.6: "C compiler cannot create executables" #291

Closed Serenthia closed 6 years ago

Serenthia commented 6 years ago

Since updating Xcode to 9.2 at the start of February 2018, I've been unable to install stringi on macOS Sierra 10.12.6 (which is preventing the installation of many other packages that depend upon it).

Full details can be found in this StackOverflow question, but happy to provide more here if helpful.

gagolews commented 6 years ago

Are you able to install, e.g., the Rcpp package or does it fail too?

Serenthia commented 6 years ago

Yup, Rcpp installs just fine through install.packages.

gagolews commented 6 years ago

Could you please:

wget https://cloud.r-project.org/src/contrib/stringi_1.1.6.tar.gz
tar -zxf stringi_1.1.6.tar.gz
cd stringi
R CMD INSTALL .

and post the contents of config.log and config.status?

Serenthia commented 6 years ago

config.status wasn't produced, but here's config.log:

This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by stringi configure 1.1, which was
generated by GNU Autoconf 2.69.  Invocation command line was

  $ ./configure 

## --------- ##
## Platform. ##
## --------- ##

hostname = host
uname -m = x86_64
uname -r = 16.7.0
uname -s = Darwin
uname -v = Darwin Kernel Version 16.7.0: Thu Jan 11 22:59:40 PST 2018; root:xnu-3789.73.8~1/RELEASE_X86_64

/usr/bin/uname -p = i386
/bin/uname -X     = unknown

/bin/arch              = unknown
/usr/bin/arch -k       = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo      = Mach kernel version:
     Darwin Kernel Version 16.7.0: Thu Jan 11 22:59:40 PST 2018; root:xnu-3789.73.8~1/RELEASE_X86_64
Kernel configured for up to 8 processors.
4 processors are physically available.
8 processors are logically available.
Processor type: x86_64h (Intel x86-64h Haswell)
Processors active: 0 1 2 3 4 5 6 7
Primary memory available: 16.00 gigabytes
Default processor set: 527 tasks, 3510 threads, 8 processors
Load average: 2.43, Mach factor: 5.55
/bin/machine           = unknown
/usr/bin/oslevel       = unknown
/bin/universe          = unknown

PATH: /usr/local/bin
PATH: /usr/bin
PATH: /bin
PATH: /usr/sbin
PATH: /sbin
PATH: /opt/X11/bin
PATH: ~/opt/cassandra/bin
PATH: ~/opt/cassandra/bin

## ----------- ##
## Core tests. ##
## ----------- ##

configure:2341: checking for local ICUDT_DIR
configure:2347: result: icu55/data
configure:2352: checking for R_HOME
configure:2363: result: /usr/local/Cellar/r/3.4.3_1/lib/R
configure:2369: checking for R
configure:2379: result: /usr/local/Cellar/r/3.4.3_1/lib/R/bin/R
configure:2382: checking for R >= 3.1.0 for C++11 use
configure:2386: result: yes
configure:2397: checking for R < 3.4.0 for CXX1X flag use
configure:2401: result: no
configure:2415: checking for cat
configure:2433: found /bin/cat
configure:2445: result: /bin/cat
configure:2561: checking for gcc
configure:2588: result: /usr/local/opt/llvm/bin/clang -fopenmp
configure:2817: checking for C compiler version
configure:2826: /usr/local/opt/llvm/bin/clang -fopenmp --version >&5
clang version 5.0.0 (tags/RELEASE_500/final)
Target: x86_64-apple-darwin16.7.0
Thread model: posix
InstalledDir: /usr/local/opt/llvm/bin
configure:2837: $? = 0
configure:2826: /usr/local/opt/llvm/bin/clang -fopenmp -v >&5
clang version 5.0.0 (tags/RELEASE_500/final)
Target: x86_64-apple-darwin16.7.0
Thread model: posix
InstalledDir: /usr/local/opt/llvm/bin
configure:2837: $? = 0
configure:2826: /usr/local/opt/llvm/bin/clang -fopenmp -V >&5
clang-5.0: error: argument to '-V' is missing (expected 1 value)
clang-5.0: error: no input files
configure:2837: $? = 1
configure:2826: /usr/local/opt/llvm/bin/clang -fopenmp -qversion >&5
clang-5.0: error: unknown argument: '-qversion'
clang-5.0: error: no input files
configure:2837: $? = 1
configure:2857: checking whether the C compiler works
configure:2879: /usr/local/opt/llvm/bin/clang -fopenmp -g -O3 -Wall -pedantic -std=gnu99 -mtune=native -pipe -fPIC   -I/usr/local/opt/gettext/include -I/usr/local/opt/llvm/include   -UDEBUG -DNDEBUG    conftest.c    >&5
ld: library not found for -lomp
clang-5.0: error: linker command failed with exit code 1 (use -v to see invocation)
configure:2883: $? = 1
configure:2921: result: no
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "stringi"
| #define PACKAGE_TARNAME "stringi"
| #define PACKAGE_VERSION "1.1"
| #define PACKAGE_STRING "stringi 1.1"
| #define PACKAGE_BUGREPORT "stringi@rexamine.com"
| #define PACKAGE_URL ""
| /* end confdefs.h.  */
| 
| int
| main ()
| {
| 
|   ;
|   return 0;
| }
configure:2926: error: in `/<dir_path>/stringi':
configure:2928: error: C compiler cannot create executables
See `config.log' for more details

## ---------------- ##
## Cache variables. ##
## ---------------- ##

ac_cv_env_CAT_set=
ac_cv_env_CAT_value=
ac_cv_env_CCC_set=
ac_cv_env_CCC_value=
ac_cv_env_CC_set=
ac_cv_env_CC_value=
ac_cv_env_CFLAGS_set=
ac_cv_env_CFLAGS_value=
ac_cv_env_CPPFLAGS_set=
ac_cv_env_CPPFLAGS_value=
ac_cv_env_CPP_set=
ac_cv_env_CPP_value=
ac_cv_env_CXXCPP_set=
ac_cv_env_CXXCPP_value=
ac_cv_env_CXXFLAGS_set=
ac_cv_env_CXXFLAGS_value=
ac_cv_env_CXX_set=
ac_cv_env_CXX_value=
ac_cv_env_ICUDT_DIR_set=
ac_cv_env_ICUDT_DIR_value=
ac_cv_env_LDFLAGS_set=
ac_cv_env_LDFLAGS_value=
ac_cv_env_LIBS_set=
ac_cv_env_LIBS_value=
ac_cv_env_PKG_CONFIG_PATH_set=
ac_cv_env_PKG_CONFIG_PATH_value=
ac_cv_env_PKG_CONFIG_set=
ac_cv_env_PKG_CONFIG_value=
ac_cv_env_R_HOME_set=set
ac_cv_env_R_HOME_value=/usr/local/Cellar/r/3.4.3_1/lib/R
ac_cv_env_STRINGI_CFLAGS_set=
ac_cv_env_STRINGI_CFLAGS_value=
ac_cv_env_STRINGI_CPPFLAGS_set=
ac_cv_env_STRINGI_CPPFLAGS_value=
ac_cv_env_STRINGI_CXXFLAGS_set=
ac_cv_env_STRINGI_CXXFLAGS_value=
ac_cv_env_STRINGI_DISABLE_CXX11_set=
ac_cv_env_STRINGI_DISABLE_CXX11_value=
ac_cv_env_STRINGI_DISABLE_ICU_BUNDLE_set=
ac_cv_env_STRINGI_DISABLE_ICU_BUNDLE_value=
ac_cv_env_STRINGI_DISABLE_PKG_CONFIG_set=
ac_cv_env_STRINGI_DISABLE_PKG_CONFIG_value=
ac_cv_env_STRINGI_LDFLAGS_set=
ac_cv_env_STRINGI_LDFLAGS_value=
ac_cv_env_STRINGI_LIBS_set=
ac_cv_env_STRINGI_LIBS_value=
ac_cv_env_build_alias_set=
ac_cv_env_build_alias_value=
ac_cv_env_host_alias_set=
ac_cv_env_host_alias_value=
ac_cv_env_target_alias_set=
ac_cv_env_target_alias_value=
ac_cv_path_CAT=/bin/cat
ac_cv_prog_ac_ct_CC='/usr/local/opt/llvm/bin/clang -fopenmp'

## ----------------- ##
## Output variables. ##
## ----------------- ##

CAT='/bin/cat'
CC='/usr/local/opt/llvm/bin/clang -fopenmp'
CFLAGS='-g -O3 -Wall -pedantic -std=gnu99 -mtune=native -pipe -fPIC  '
CPP='/usr/local/opt/llvm/bin/clang++ -E'
CPPFLAGS='-I/usr/local/opt/gettext/include -I/usr/local/opt/llvm/include   -UDEBUG -DNDEBUG'
CXX='clang++ -std=gnu++11'
CXXCPP=''
CXXFLAGS='-g -O2 -fPIC  '
DEFS=''
ECHO_C='\c'
ECHO_N=''
ECHO_T=''
EGREP=''
EXEEXT=''
GREP=''
ICUDT_DIR='icu55/data'
ICU_FOUND=''
LDFLAGS='  '
LIBOBJS=''
LIBS='  '
LTLIBOBJS=''
OBJEXT=''
PACKAGE_BUGREPORT='stringi@rexamine.com'
PACKAGE_NAME='stringi'
PACKAGE_STRING='stringi 1.1'
PACKAGE_TARNAME='stringi'
PACKAGE_URL=''
PACKAGE_VERSION='1.1'
PATH_SEPARATOR=':'
PKG_CONFIG=''
PKG_CONFIG_PATH=''
R_HOME='/usr/local/Cellar/r/3.4.3_1/lib/R'
SHELL='/bin/sh'
STRINGI_CFLAGS=''
STRINGI_CPPFLAGS=''
STRINGI_CXXFLAGS=''
STRINGI_CXXSTD='CXX_STD=CXX11'
STRINGI_DISABLE_CXX11=''
STRINGI_DISABLE_ICU_BUNDLE=''
STRINGI_DISABLE_PKG_CONFIG=''
STRINGI_ICU_COMMON_SOURCES_C=''
STRINGI_ICU_COMMON_SOURCES_CPP=''
STRINGI_ICU_I18N_SOURCES_C=''
STRINGI_ICU_I18N_SOURCES_CPP=''
STRINGI_ICU_STUBDATA_SOURCES_C=''
STRINGI_ICU_STUBDATA_SOURCES_CPP=''
STRINGI_LDFLAGS=''
STRINGI_LIBS=''
STRINGI_OBJECTS=''
STRINGI_SOURCES_CPP=''
ac_ct_CC='/usr/local/opt/llvm/bin/clang -fopenmp'
ac_ct_CXX=''
bindir='${exec_prefix}/bin'
build_alias=''
datadir='${datarootdir}'
datarootdir='${prefix}/share'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
dvidir='${docdir}'
exec_prefix='NONE'
host_alias=''
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
mandir='${datarootdir}/man'
oldincludedir='/usr/include'
pdfdir='${docdir}'
prefix='NONE'
program_transform_name='s,x,x,'
psdir='${docdir}'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
sysconfdir='${prefix}/etc'
target_alias=''

## ----------- ##
## confdefs.h. ##
## ----------- ##

/* confdefs.h */
#define PACKAGE_NAME "stringi"
#define PACKAGE_TARNAME "stringi"
#define PACKAGE_VERSION "1.1"
#define PACKAGE_STRING "stringi 1.1"
#define PACKAGE_BUGREPORT "stringi@rexamine.com"
#define PACKAGE_URL ""

configure: exit 77
gagolews commented 6 years ago

Here's the problem:

configure:2879: /usr/local/opt/llvm/bin/clang -fopenmp -g -O3 -Wall -pedantic -std=gnu99 -mtune=native -pipe -fPIC   -I/usr/local/opt/gettext/include -I/usr/local/opt/llvm/include   -UDEBUG -DNDEBUG    conftest.c    >&5
ld: library not found for -lomp

seems like you don't have the openmp lib installed (stringi doesn't need it)

the compiler is ill-configured, not an issue with stringi...

Serenthia commented 6 years ago

Just a note here in case anyone else has the same issue.

@gagolews is correct that the issue wasn't with stringi but instead in ~/.R/Makevars. Installation was successful upon deleting this file.

barrettkirwan commented 6 years ago

Such a simple solution to a maddening problem. Thanks @Serenthia!

lvwarren commented 4 years ago

Having a serious version of this same problem on some R code doing Corona predicts. Just reinstalled X-Code, command line tools, anaconda R base and environment. It is not seeing that it can create C executables even tho I can compile at the terminal command line. My config.log looks like this:

This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake.

It was created by microbenchmark configure VERSION, which was generated by GNU Autoconf 2.69. Invocation command line was

$ ./configure

---------

Platform.

---------

hostname = Van-iMac.attlocal.net uname -m = x86_64 uname -r = 19.4.0 uname -s = Darwin uname -v = Darwin Kernel Version 19.4.0: Wed Mar 4 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64

/usr/bin/uname -p = i386 /bin/uname -X = unknown

/bin/arch = unknown /usr/bin/arch -k = unknown /usr/convex/getsysinfo = unknown /usr/bin/hostinfo = Mach kernel version: Darwin Kernel Version 19.4.0: Wed Mar 4 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64 Kernel configured for up to 4 processors. 4 processors are physically available. 4 processors are logically available. Processor type: x86_64h (Intel x86-64h Haswell) Processors active: 0 1 2 3 Primary memory available: 16.00 gigabytes Default processor set: 404 tasks, 1968 threads, 4 processors Load average: 1.72, Mach factor: 2.48 /bin/machine = unknown /usr/bin/oslevel = unknown /bin/universe = unknown

PATH: /opt/anaconda3/envs/r_env/bin PATH: /opt/anaconda3/condabin PATH: . PATH: /Users/xxx/anaconda3/bin PATH: /usr/local/bin PATH: /bin PATH: /usr/bin PATH: /usr/sbin PATH: /usr/local PATH: /usr/local/include PATH: /usr/local/lib PATH: /usr/local/lib/wx PATH: /usr/local/Cellar/smlnj/110.82/bin PATH: /usr/local/Cellar/binutils/2.30 PATH: /usr/local/Cellar/coreutils/8.29 PATH: /Applications PATH: /opt/local/bin PATH: /opt/local/sbin PATH: /Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/bin PATH: .

-----------

Core tests.

-----------

configure:2152: checking for gcc configure:2179: result: x86_64-apple-darwin13.4.0-clang configure:2408: checking for C compiler version configure:2417: x86_64-apple-darwin13.4.0-clang --version >&5 clang version 4.0.1 (tags/RELEASE_401/final) Target: x86_64-apple-darwin13.4.0 Thread model: posix InstalledDir: /opt/anaconda3/envs/r_env/bin configure:2428: $? = 0 configure:2417: x86_64-apple-darwin13.4.0-clang -v >&5 clang version 4.0.1 (tags/RELEASE_401/final) Target: x86_64-apple-darwin13.4.0 Thread model: posix InstalledDir: /opt/anaconda3/envs/r_env/bin configure:2428: $? = 0 configure:2417: x86_64-apple-darwin13.4.0-clang -V >&5 clang-4.0: error: argument to '-V' is missing (expected 1 value) clang-4.0: error: no input files configure:2428: $? = 1 configure:2417: x86_64-apple-darwin13.4.0-clang -qversion >&5 clang-4.0: error: unknown argument: '-qversion' clang-4.0: error: no input files configure:2428: $? = 1 configure:2448: checking whether the C compiler works configure:2470: x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fPIE -fstack-protector-strong -O2 -pipe -I/opt/anaconda3/envs/r_env/include -fdebug-prefix-map=/opt/concourse/worker/volumes/live/59b7f007-fada-42cf-7435-5bbd0518eaa4/volume/r-base_1570124919999/work=/usr/local/src/conda/r-base-3.6.1 -fdebug-prefix-map=/opt/anaconda3/envs/r_env=/usr/local/src/conda-prefix -D_FORTIFY_SOURCE=2 -mmacosx-version-min=10.9 -I/opt/anaconda3/envs/r_env/include -Wl,-pie -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs conftest.c >&5 ld: warning: ignoring file /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib/libSystem.tbd, file was built for unsupported file format ( 0x2D 0x2D 0x2D 0x20 0x21 0x74 0x61 0x70 0x69 0x2D 0x74 0x62 0x64 0x2D 0x76 0x33 ) which is not the architecture being linked (x86_64): /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib/libSystem.tbd ld: dynamic main executables must link with libSystem.dylib for architecture x86_64 clang-4.0: error: linker command failed with exit code 1 (use -v to see invocation) configure:2474: $? = 1 configure:2512: result: no configure: failed program was: / confdefs.h / #define PACKAGE_NAME "microbenchmark" #define PACKAGE_TARNAME "microbenchmark" #define PACKAGE_VERSION "VERSION" #define PACKAGE_STRING "microbenchmark VERSION" #define PACKAGE_BUGREPORT "https://github.com/joshuaulrich/microbenchmark/issues" #define PACKAGE_URL "" / end confdefs.h. /
int
main ()
{
;
return 0;
}

configure:2517: error: in /tmp/junk/microbenchmark': configure:2519: error: C compiler cannot create executables Seeconfig.log' for more details

----------------

Cache variables.

----------------

ac_cv_env_CC_set=set ac_cv_env_CC_value=x86_64-apple-darwin13.4.0-clang ac_cv_env_CFLAGS_set=set ac_cv_env_CFLAGS_value='-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fPIE -fstack-protector-strong -O2 -pipe' ac_cv_env_CPPFLAGS_set=set ac_cv_env_CPPFLAGS_value='-D_FORTIFY_SOURCE=2 -mmacosx-version-min=10.9' ac_cv_env_CPP_set= ac_cv_env_CPP_value= ac_cv_env_LDFLAGS_set=set ac_cv_env_LDFLAGS_value='-Wl,-pie -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs' ac_cv_env_LIBS_set= ac_cv_env_LIBS_value= ac_cv_env_build_alias_set= ac_cv_env_build_alias_value= ac_cv_env_host_alias_set= ac_cv_env_host_alias_value= ac_cv_env_target_alias_set= ac_cv_env_target_alias_value= ac_cv_prog_ac_ct_CC=x86_64-apple-darwin13.4.0-clang

-----------------

Output variables.

-----------------

CC='x86_64-apple-darwin13.4.0-clang' CFLAGS='-march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fPIE -fstack-protector-strong -O2 -pipe -I/opt/anaconda3/envs/r_env/include -fdebug-prefix-map=/opt/concourse/worker/volumes/live/59b7f007-fada-42cf-7435-5bbd0518eaa4/volume/r-base_1570124919999/work=/usr/local/src/conda/r-base-3.6.1 -fdebug-prefix-map=/opt/anaconda3/envs/r_env=/usr/local/src/conda-prefix' CPP='' CPPFLAGS='-D_FORTIFY_SOURCE=2 -mmacosx-version-min=10.9 -I/opt/anaconda3/envs/r_env/include' DEFS='' ECHO_C='\c' ECHO_N='' ECHO_T='' EGREP='' EXEEXT='' GREP='' LDFLAGS='-Wl,-pie -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs' LIBOBJS='' LIBS='' LTLIBOBJS='' MB_LIBS='' OBJEXT='' PACKAGE_BUGREPORT='https://github.com/joshuaulrich/microbenchmark/issues' PACKAGE_NAME='microbenchmark' PACKAGE_STRING='microbenchmark VERSION' PACKAGE_TARNAME='microbenchmark' PACKAGE_URL='' PACKAGE_VERSION='VERSION' PATH_SEPARATOR=':' SHELL='/bin/sh' ac_ct_CC='x86_64-apple-darwin13.4.0-clang' bindir='${exec_prefix}/bin' build_alias='' datadir='${datarootdir}' datarootdir='${prefix}/share' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' dvidir='${docdir}' exec_prefix='NONE' host_alias='' htmldir='${docdir}' includedir='${prefix}/include' infodir='${datarootdir}/info' libdir='${exec_prefix}/lib' libexecdir='${exec_prefix}/libexec' localedir='${datarootdir}/locale' localstatedir='${prefix}/var' mandir='${datarootdir}/man' oldincludedir='/usr/include' pdfdir='${docdir}' prefix='NONE' program_transform_name='s,x,x,' psdir='${docdir}' runstatedir='${localstatedir}/run' sbindir='${exec_prefix}/sbin' sharedstatedir='${prefix}/com' sysconfdir='${prefix}/etc' target_alias=''

-----------

confdefs.h.

-----------

/ confdefs.h /

define PACKAGE_NAME "microbenchmark"

define PACKAGE_TARNAME "microbenchmark"

define PACKAGE_VERSION "VERSION"

define PACKAGE_STRING "microbenchmark VERSION"

define PACKAGE_BUGREPORT "https://github.com/joshuaulrich/microbenchmark/issues"

define PACKAGE_URL ""

configure: exit 77