Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[macOS 14.5]ld: unknown options: --enable-new-dtags -rpath=check/lib64 --enable-new-dtags -rpath=check/lib64 #494

Open
MartinJewski opened this issue Jun 21, 2024 · 0 comments

Comments

@MartinJewski
Copy link

MartinJewski commented Jun 21, 2024

Question

  1. Is it possible to configure and make ior 4.0.0 on macOS running on the M3?
  2. Is it possible to use different LDFLAGS to for make to build ior 4.0.0 on macOS running on the M3?

Description

Hello everyone,

I am currently on a new work device, the MacBook Air with the M3 chip. I tried to build ior 4.0.0, but the
make process fails at the end throwing an error. The error, as mentioned in the headline, apparently relates to the clang linker (see full make output in the Make Output section).

Configure Output

Running configure as mentioned in the installation guide results in the following output:

(base) airuserworkdevice ior-4.0.0 % ./configure

checking metadata... yes
checking build system type... arm-apple-darwin23.5.0
checking host system type... arm-apple-darwin23.5.0
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... config/install-sh -c -d
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking whether make supports the include directive... yes (GNU style)
checking for mpicc... mpicc
checking for gcc... (cached) mpicc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether mpicc accepts -g... yes
checking for mpicc option to accept ISO C89... none needed
checking whether mpicc understands -c and -o together... yes
checking dependency style of mpicc... gcc3
checking for function MPI_Init... yes
checking for mpi.h... yes
checking for ranlib... ranlib
checking for mpicc option to accept ISO C99... none needed
checking how to run the C preprocessor... mpicc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking libintl.h usability... no
checking libintl.h presence... no
checking for libintl.h... no
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for strings.h... (cached) yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/param.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking sys/statfs.h usability... no
checking sys/statfs.h presence... no
checking for sys/statfs.h... no
checking sys/statvfs.h usability... yes
checking sys/statvfs.h presence... yes
checking for sys/statvfs.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for sys/param.h... (cached) yes
checking sys/mount.h usability... yes
checking sys/mount.h presence... yes
checking for sys/mount.h... yes
checking for unistd.h... (cached) yes
checking wchar.h usability... yes
checking wchar.h presence... yes
checking for wchar.h... yes
checking hdfs.h usability... no
checking hdfs.h presence... no
checking for hdfs.h... no
checking beegfs/beegfs.h usability... no
checking beegfs/beegfs.h presence... no
checking for beegfs/beegfs.h... no
checking for size_t... yes
checking for sysconf... yes
checking for gettimeofday... yes
checking for memset... yes
checking for mkdir... yes
checking for pow... yes
checking for putenv... yes
checking for realpath... yes
checking for regcomp... yes
checking for sqrt... yes
checking for strcasecmp... yes
checking for strchr... yes
checking for strerror... yes
checking for strncasecmp... yes
checking for strstr... yes
checking for uname... yes
checking for statfs... yes
checking for statvfs... yes
checking for library containing sqrt... none required
checking gpfs.h usability... no
checking gpfs.h presence... no
checking for gpfs.h... no
checking gpfs_fcntl.h usability... no
checking gpfs_fcntl.h presence... no
checking for gpfs_fcntl.h... no
checking cuda_runtime.h usability... no
checking cuda_runtime.h presence... no
checking for cuda_runtime.h... no
checking cufile.h usability... no
checking cufile.h presence... no
checking for cufile.h... no
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for Gfarm file system... no
checking for pkg-config... no
checking for CHFS... no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating src/test/Makefile
config.status: creating contrib/Makefile
config.status: creating doc/Makefile
config.status: creating src/config.h
config.status: src/config.h is unchanged
config.status: executing depfiles commands

Make Output

Running make results in the following output

(base) airuser@workdevice ior-4.0.0 % make
Making all in src
/Library/Developer/CommandLineTools/usr/bin/make all-recursive
Making all in .
Making all in test
make[3]: Nothing to be done for all.
Making all in doc
make[1]: Nothing to be done for all.
Making all in contrib
CCLD cbif
ld: unknown options: --enable-new-dtags -rpath=check/lib64 --enable-new-dtags -rpath=check/lib64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [cbif] Error 1
make: *** [all-recursive] Error 1

To Reproduce

I set up brew and anaconda to download

  • gawk
  • python3.12
  • mpi4py
  • openmpi

According to the terminal output running clang --version

  • Apple clang version 15.0.0 (clang-1500.3.9.4)
  • Target: arm64-apple-darwin23.5.0
  • Thread model: posix
  • InstalledDir: /Library/Developer/CommandLineTools/usr/bin

The OS and version

  • ProductName: macOS
  • ProductVersion: 14.5

Info

There is a post from an apple engineer explaining some terminology, also mentioning a new 'ld', which was introduced with Xcode 15. An Apple Library Primer.
The main apple page for clang listing all supported features Apple Clang.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant