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

Build failure on Mac OS X 10.13.2 (Unable to specify soname (is Darwin supported?)) #181

Open
joshnatis opened this issue May 11, 2021 · 6 comments

Comments

@joshnatis
Copy link

Hi,

Running ./configure works with no errors at first, but running make afterwards yields:

Makefile:4: .build/config.mk: No such file or directory
Makefile:35: .build/cppcache: No such file or directory
make: *** No rule to make target `.build/cppcache'.  Stop.

(and indeed .build only contains check.c)

So I went searching in the configure script for what's going wrong --

201 for flag in -fPIC -Wl,--no-undefined -Wl,--as-needed
202 do
203         test_ldflags "$flag"
204 done

We never make it past line 204: test_ldflags goes through with argument -fPIC, but the next argument, -Wl,--no-undefined fails and the script exits (I'm not entirely sure if the arguments are being passed correctly to the function, but this is what's being passed).

So I removed the line that causes the script to exit on failure, 178:

170 test_ldflags() {
171         [ ! -e "$outdir"/check.c ] && cat <<-EOF > "$outdir"/check.c
172         int main(void) { return 0; }
173         EOF
174         if $CC "$@" -o /dev/null "$outdir"/check.c >/dev/null 2>&1
175         then
176                 append_ldflags "$@"
177         else
- 178                 return 1
+ 178                 :
179         fi
180 }

And now I get stuck at this error:

Checking for specifying soname for shared lib... no
Unable to specify soname (is Darwin supported?)

Do you have any idea of what's going wrong? Thanks


GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin17)
but I also tried to sh it

@eli-schwartz
Copy link

Running ./configure works with no errors at first

So I removed the line that causes the script to exit on failure, 178:

Which one is it? :p

I somehow suspect making required flags unrequired isn't the solution though.

@emersion
Copy link
Owner

Have you tried the Meson build?

@eli-schwartz
Copy link

Which compiler are you using, anyway, that doesn't support -Wl,--no-undefined and doesn't support Darwin's -install_name

@joshnatis
Copy link
Author

joshnatis commented May 11, 2021

Which one is it? :p

Lol sorry I can see that's ambiguous now, it was late. Running the script produces no visible errors, most of the printed checks pass and there's no indication that it did not succeed.

Checking for -g... no
Checking for -std=c99... yes
Checking for -pedantic... yes
Checking for -Werror... yes
Checking for -Wundef... yes
Checking for -Wlogical-op... no
Checking for -Wmissing-include-dirs... yes
Checking for -Wold-style-definition... yes
Checking for -Wpointer-arith... yes
Checking for -Winit-self... yes
Checking for -Wfloat-equal... yes
Checking for -Wstrict-prototypes... yes
Checking for -Wredundant-decls... yes
Checking for -Wimplicit-fallthrough=2... no
Checking for -Wendif-labels... yes
Checking for -Wstrict-aliasing=2... yes
Checking for -Woverflow... yes
Checking for -Wformat=2... yes
Checking for -Wno-missing-braces... yes
Checking for -Wno-missing-field-initializers... yes
Checking for -Wno-unused-parameter... yes
Checking for -Wno-unused-result... yes

But, as mentioned, it doesn't produce the necessary files in .build, so after some debugging I figured out it was silently exiting on line 178.

I somehow suspect making required flags unrequired isn't the solution though.

I don't suspect that either, but I figured that my environment is supposed to be sufficient formrsh given that it's not heavily modified (essentially a stock Mac OS X with command-line tools installed), and that I saw no previous similar issues listed regarding Mac OS.

Which compiler are you using, anyway

The script asks for cc, which on my system is:

Apple LLVM version 9.1.0 (clang-902.0.39.1)
Target: x86_64-apple-darwin17.3.0
Thread model: posix

I also tried CC=gcc, but the same thing happens
edit: just remembered that gcc is just a symlink (or alias, etc) for clang here, so of course it made no difference


Have you tried the Meson build?

I just tried it (after installing meson and ninja) and it worked. Could there be a bug in the configure script?

If it's useful, here's the output of Meson:

The Meson build system
Version: 0.58.0
Source dir: /Users/Josh/mrsh
Build dir: /Users/Josh/mrsh/build
Build type: native build
Project name: mrsh
Project version: 0.0.0
C compiler for the host machine: cc (clang 9.1.0 "Apple LLVM version 9.1.0 (clang-902.0.39.1)")
C linker for the host machine: cc ld64 351.8
Host machine cpu family: x86_64
Host machine cpu: x86_64
Compiler for C supports arguments -Wundef: YES 
Compiler for C supports arguments -Wlogical-op: NO 
Compiler for C supports arguments -Wmissing-include-dirs: YES 
Compiler for C supports arguments -Wold-style-definition: YES 
Compiler for C supports arguments -Wpointer-arith: YES 
Compiler for C supports arguments -Winit-self: YES 
Compiler for C supports arguments -Wfloat-equal: YES 
Compiler for C supports arguments -Wstrict-prototypes: YES 
Compiler for C supports arguments -Wredundant-decls: YES 
Compiler for C supports arguments -Wimplicit-fallthrough=2: NO 
Compiler for C supports arguments -Wendif-labels: YES 
Compiler for C supports arguments -Wstrict-aliasing=2: YES 
Compiler for C supports arguments -Woverflow: YES 
Compiler for C supports arguments -Wformat=2: YES 
Compiler for C supports arguments -Wmissing-prototypes: YES 
Compiler for C supports arguments -Wno-missing-braces: YES 
Compiler for C supports arguments -Wno-missing-field-initializers: YES 
Compiler for C supports arguments -Wno-unused-parameter: YES 
Compiler for C supports arguments -Wno-unused-result: YES 
Compiler for C supports arguments -Wno-format-overflow: NO 
Library readline found: YES
Checking for function "rl_replace_line" with dependency -lreadline: NO 
Checking if "-Wl,--version-script" links: NO 
Compiler for C supports link arguments -Wl,-exported_symbols_list /Users/Josh/mrsh/libmrsh.darwin.sym: YES 
Program ./harness.sh found: YES (/Users/Josh/mrsh/test/./harness.sh)
Program sh found: YES (/bin/sh)
Program ./harness.sh found: YES (/bin/sh /Users/Josh/mrsh/test/conformance/./harness.sh)
Message: 
Features:
  readline: true
  examples: true
Build targets in project: 3

@LambdaP
Copy link

LambdaP commented Sep 23, 2021

This hasn’t moved for a while. To go further, here’s what both meson and ninja produce on my machine:

$ meson setup --wipe build
The Meson build system
Version: 0.59.1
Source dir: /Users/lambdap/mrsh
Build dir: /Users/lambdap/mrsh/build
Build type: native build
Project name: mrsh
Project version: 0.0.0
C compiler for the host machine: cc (clang 13.0.0 "Apple clang version 13.0.0 (clang-1300.0.29.3)")
C linker for the host machine: cc ld64 711
Host machine cpu family: x86_64
Host machine cpu: x86_64
Compiler for C supports arguments -Wundef: YES 
Compiler for C supports arguments -Wlogical-op: NO 
Compiler for C supports arguments -Wmissing-include-dirs: YES 
Compiler for C supports arguments -Wold-style-definition: YES 
Compiler for C supports arguments -Wpointer-arith: YES 
Compiler for C supports arguments -Winit-self: YES 
Compiler for C supports arguments -Wfloat-equal: YES 
Compiler for C supports arguments -Wstrict-prototypes: YES 
Compiler for C supports arguments -Wredundant-decls: YES 
Compiler for C supports arguments -Wimplicit-fallthrough=2: NO 
Compiler for C supports arguments -Wendif-labels: YES 
Compiler for C supports arguments -Wstrict-aliasing=2: YES 
Compiler for C supports arguments -Woverflow: YES 
Compiler for C supports arguments -Wformat=2: YES 
Compiler for C supports arguments -Wmissing-prototypes: YES 
Compiler for C supports arguments -Wno-missing-braces: YES 
Compiler for C supports arguments -Wno-missing-field-initializers: YES 
Compiler for C supports arguments -Wno-unused-parameter: YES 
Compiler for C supports arguments -Wno-unused-result: YES 
Compiler for C supports arguments -Wno-format-overflow: NO 
Library readline found: YES
Checking for function "rl_replace_line" with dependency -lreadline: NO 
Checking if "-Wl,--version-script" links: NO 
Compiler for C supports link arguments -Wl,-exported_symbols_list /Users/lambdap/mrsh/libmrsh.darwin.sym: YES 
Program ./harness.sh found: YES (/Users/lambdap/mrsh/test/./harness.sh)
Program sh found: YES (/bin/sh)
Program ./harness.sh found: YES (/bin/sh /Users/lambdap/mrsh/test/conformance/./harness.sh)
Message: 
Features:
  readline: true
  examples: true
Build targets in project: 3

Found ninja-1.10.2 at /usr/local/bin/ninja

and here’s ninja:

$ ninja --verbose -C build
ninja: Entering directory `build'
[1/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/array.c.o -MF libmrsh.0.dylib.p/array.c.o.d -o libmrsh.0.dylib.p/array.c.o -c ../array.c
[2/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/buffer.c.o -MF libmrsh.0.dylib.p/buffer.c.o.d -o libmrsh.0.dylib.p/buffer.c.o -c ../buffer.c
[3/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/arithm.c.o -MF libmrsh.0.dylib.p/arithm.c.o.d -o libmrsh.0.dylib.p/arithm.c.o -c ../arithm.c
[4/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/ast_print.c.o -MF libmrsh.0.dylib.p/ast_print.c.o.d -o libmrsh.0.dylib.p/ast_print.c.o -c ../ast_print.c
[5/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/builtin_alias.c.o -MF libmrsh.0.dylib.p/builtin_alias.c.o.d -o libmrsh.0.dylib.p/builtin_alias.c.o -c ../builtin/alias.c
[6/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/builtin_break.c.o -MF libmrsh.0.dylib.p/builtin_break.c.o.d -o libmrsh.0.dylib.p/builtin_break.c.o -c ../builtin/break.c
[7/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/builtin_bg.c.o -MF libmrsh.0.dylib.p/builtin_bg.c.o.d -o libmrsh.0.dylib.p/builtin_bg.c.o -c ../builtin/bg.c
[8/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/builtin_builtin.c.o -MF libmrsh.0.dylib.p/builtin_builtin.c.o.d -o libmrsh.0.dylib.p/builtin_builtin.c.o -c ../builtin/builtin.c
[9/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/builtin_command.c.o -MF libmrsh.0.dylib.p/builtin_command.c.o.d -o libmrsh.0.dylib.p/builtin_command.c.o -c ../builtin/command.c
[10/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/builtin_colon.c.o -MF libmrsh.0.dylib.p/builtin_colon.c.o.d -o libmrsh.0.dylib.p/builtin_colon.c.o -c ../builtin/colon.c
[11/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/builtin_cd.c.o -MF libmrsh.0.dylib.p/builtin_cd.c.o.d -o libmrsh.0.dylib.p/builtin_cd.c.o -c ../builtin/cd.c
[12/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/builtin_eval.c.o -MF libmrsh.0.dylib.p/builtin_eval.c.o.d -o libmrsh.0.dylib.p/builtin_eval.c.o -c ../builtin/eval.c
[13/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/builtin_exec.c.o -MF libmrsh.0.dylib.p/builtin_exec.c.o.d -o libmrsh.0.dylib.p/builtin_exec.c.o -c ../builtin/exec.c
[14/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/builtin_export.c.o -MF libmrsh.0.dylib.p/builtin_export.c.o.d -o libmrsh.0.dylib.p/builtin_export.c.o -c ../builtin/export.c
[15/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/builtin_dot.c.o -MF libmrsh.0.dylib.p/builtin_dot.c.o.d -o libmrsh.0.dylib.p/builtin_dot.c.o -c ../builtin/dot.c
[16/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/builtin_fg.c.o -MF libmrsh.0.dylib.p/builtin_fg.c.o.d -o libmrsh.0.dylib.p/builtin_fg.c.o -c ../builtin/fg.c
[17/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/builtin_exit.c.o -MF libmrsh.0.dylib.p/builtin_exit.c.o.d -o libmrsh.0.dylib.p/builtin_exit.c.o -c ../builtin/exit.c
[18/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/builtin_pwd.c.o -MF libmrsh.0.dylib.p/builtin_pwd.c.o.d -o libmrsh.0.dylib.p/builtin_pwd.c.o -c ../builtin/pwd.c
[19/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/builtin_false.c.o -MF libmrsh.0.dylib.p/builtin_false.c.o.d -o libmrsh.0.dylib.p/builtin_false.c.o -c ../builtin/false.c
[20/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/builtin_getopts.c.o -MF libmrsh.0.dylib.p/builtin_getopts.c.o.d -o libmrsh.0.dylib.p/builtin_getopts.c.o -c ../builtin/getopts.c
[21/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/ast.c.o -MF libmrsh.0.dylib.p/ast.c.o.d -o libmrsh.0.dylib.p/ast.c.o -c ../ast.c
[22/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/builtin_jobs.c.o -MF libmrsh.0.dylib.p/builtin_jobs.c.o.d -o libmrsh.0.dylib.p/builtin_jobs.c.o -c ../builtin/jobs.c
[23/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/builtin_hash.c.o -MF libmrsh.0.dylib.p/builtin_hash.c.o.d -o libmrsh.0.dylib.p/builtin_hash.c.o -c ../builtin/hash.c
[24/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/builtin_shift.c.o -MF libmrsh.0.dylib.p/builtin_shift.c.o.d -o libmrsh.0.dylib.p/builtin_shift.c.o -c ../builtin/shift.c
[25/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/builtin_return.c.o -MF libmrsh.0.dylib.p/builtin_return.c.o.d -o libmrsh.0.dylib.p/builtin_return.c.o -c ../builtin/return.c
[26/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/builtin_read.c.o -MF libmrsh.0.dylib.p/builtin_read.c.o.d -o libmrsh.0.dylib.p/builtin_read.c.o -c ../builtin/read.c
[27/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/builtin_set.c.o -MF libmrsh.0.dylib.p/builtin_set.c.o.d -o libmrsh.0.dylib.p/builtin_set.c.o -c ../builtin/set.c
[28/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/builtin_true.c.o -MF libmrsh.0.dylib.p/builtin_true.c.o.d -o libmrsh.0.dylib.p/builtin_true.c.o -c ../builtin/true.c
[29/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/builtin_ulimit.c.o -MF libmrsh.0.dylib.p/builtin_ulimit.c.o.d -o libmrsh.0.dylib.p/builtin_ulimit.c.o -c ../builtin/ulimit.c
[30/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/builtin_type.c.o -MF libmrsh.0.dylib.p/builtin_type.c.o.d -o libmrsh.0.dylib.p/builtin_type.c.o -c ../builtin/type.c
[31/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/builtin_times.c.o -MF libmrsh.0.dylib.p/builtin_times.c.o.d -o libmrsh.0.dylib.p/builtin_times.c.o -c ../builtin/times.c
[32/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/builtin_unalias.c.o -MF libmrsh.0.dylib.p/builtin_unalias.c.o.d -o libmrsh.0.dylib.p/builtin_unalias.c.o -c ../builtin/unalias.c
[33/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/builtin_unspecified.c.o -MF libmrsh.0.dylib.p/builtin_unspecified.c.o.d -o libmrsh.0.dylib.p/builtin_unspecified.c.o -c ../builtin/unspecified.c
[34/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/builtin_unset.c.o -MF libmrsh.0.dylib.p/builtin_unset.c.o.d -o libmrsh.0.dylib.p/builtin_unset.c.o -c ../builtin/unset.c
[35/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/builtin_wait.c.o -MF libmrsh.0.dylib.p/builtin_wait.c.o.d -o libmrsh.0.dylib.p/builtin_wait.c.o -c ../builtin/wait.c
[36/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/builtin_trap.c.o -MF libmrsh.0.dylib.p/builtin_trap.c.o.d -o libmrsh.0.dylib.p/builtin_trap.c.o -c ../builtin/trap.c
[37/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/getopt.c.o -MF libmrsh.0.dylib.p/getopt.c.o.d -o libmrsh.0.dylib.p/getopt.c.o -c ../getopt.c
[38/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/hashtable.c.o -MF libmrsh.0.dylib.p/hashtable.c.o.d -o libmrsh.0.dylib.p/hashtable.c.o -c ../hashtable.c
[39/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/builtin_umask.c.o -MF libmrsh.0.dylib.p/builtin_umask.c.o.d -o libmrsh.0.dylib.p/builtin_umask.c.o -c ../builtin/umask.c
[40/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/parser_parser.c.o -MF libmrsh.0.dylib.p/parser_parser.c.o.d -o libmrsh.0.dylib.p/parser_parser.c.o -c ../parser/parser.c
[41/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/parser_arithm.c.o -MF libmrsh.0.dylib.p/parser_arithm.c.o.d -o libmrsh.0.dylib.p/parser_arithm.c.o -c ../parser/arithm.c
[42/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/shell_arithm.c.o -MF libmrsh.0.dylib.p/shell_arithm.c.o.d -o libmrsh.0.dylib.p/shell_arithm.c.o -c ../shell/arithm.c
[43/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/shell_entry.c.o -MF libmrsh.0.dylib.p/shell_entry.c.o.d -o libmrsh.0.dylib.p/shell_entry.c.o -c ../shell/entry.c
[44/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/shell_path.c.o -MF libmrsh.0.dylib.p/shell_path.c.o.d -o libmrsh.0.dylib.p/shell_path.c.o -c ../shell/path.c
[45/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/shell_process.c.o -MF libmrsh.0.dylib.p/shell_process.c.o.d -o libmrsh.0.dylib.p/shell_process.c.o -c ../shell/process.c
[46/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/parser_word.c.o -MF libmrsh.0.dylib.p/parser_word.c.o.d -o libmrsh.0.dylib.p/parser_word.c.o -c ../parser/word.c
[47/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/shell_redir.c.o -MF libmrsh.0.dylib.p/shell_redir.c.o.d -o libmrsh.0.dylib.p/shell_redir.c.o -c ../shell/redir.c
[48/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/shell_job.c.o -MF libmrsh.0.dylib.p/shell_job.c.o.d -o libmrsh.0.dylib.p/shell_job.c.o -c ../shell/job.c
[49/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/shell_shell.c.o -MF libmrsh.0.dylib.p/shell_shell.c.o.d -o libmrsh.0.dylib.p/shell_shell.c.o -c ../shell/shell.c
[50/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/shell_task_pipeline.c.o -MF libmrsh.0.dylib.p/shell_task_pipeline.c.o.d -o libmrsh.0.dylib.p/shell_task_pipeline.c.o -c ../shell/task/pipeline.c
[51/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/parser_program.c.o -MF libmrsh.0.dylib.p/parser_program.c.o.d -o libmrsh.0.dylib.p/parser_program.c.o -c ../parser/program.c
[52/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/shell_task_task.c.o -MF libmrsh.0.dylib.p/shell_task_task.c.o.d -o libmrsh.0.dylib.p/shell_task_task.c.o -c ../shell/task/task.c
[53/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/shell_trap.c.o -MF libmrsh.0.dylib.p/shell_trap.c.o.d -o libmrsh.0.dylib.p/shell_trap.c.o -c ../shell/trap.c
[54/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/shell_task_simple_command.c.o -MF libmrsh.0.dylib.p/shell_task_simple_command.c.o.d -o libmrsh.0.dylib.p/shell_task_simple_command.c.o -c ../shell/task/simple_command.c
[55/63] cc -Imrsh.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ mrsh.p/frontend_readline.c.o -MF mrsh.p/frontend_readline.c.o.d -o mrsh.p/frontend_readline.c.o -c ../frontend/readline.c
[56/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/shell_word.c.o -MF libmrsh.0.dylib.p/shell_word.c.o.d -o libmrsh.0.dylib.p/shell_word.c.o -c ../shell/word.c
[57/63] cc -Imrsh.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ mrsh.p/main.c.o -MF mrsh.p/main.c.o.d -o mrsh.p/main.c.o -c ../main.c
[58/63] cc -Ilibmrsh.0.dylib.p -I. -I.. -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ libmrsh.0.dylib.p/shell_task_word.c.o -MF libmrsh.0.dylib.p/shell_task_word.c.o.d -o libmrsh.0.dylib.p/shell_task_word.c.o -c ../shell/task/word.c
[59/63] cc  -o libmrsh.0.dylib libmrsh.0.dylib.p/arithm.c.o libmrsh.0.dylib.p/array.c.o libmrsh.0.dylib.p/ast_print.c.o libmrsh.0.dylib.p/ast.c.o libmrsh.0.dylib.p/buffer.c.o libmrsh.0.dylib.p/builtin_alias.c.o libmrsh.0.dylib.p/builtin_bg.c.o libmrsh.0.dylib.p/builtin_break.c.o libmrsh.0.dylib.p/builtin_builtin.c.o libmrsh.0.dylib.p/builtin_cd.c.o libmrsh.0.dylib.p/builtin_colon.c.o libmrsh.0.dylib.p/builtin_command.c.o libmrsh.0.dylib.p/builtin_dot.c.o libmrsh.0.dylib.p/builtin_eval.c.o libmrsh.0.dylib.p/builtin_exec.c.o libmrsh.0.dylib.p/builtin_exit.c.o libmrsh.0.dylib.p/builtin_export.c.o libmrsh.0.dylib.p/builtin_false.c.o libmrsh.0.dylib.p/builtin_fg.c.o libmrsh.0.dylib.p/builtin_getopts.c.o libmrsh.0.dylib.p/builtin_hash.c.o libmrsh.0.dylib.p/builtin_jobs.c.o libmrsh.0.dylib.p/builtin_pwd.c.o libmrsh.0.dylib.p/builtin_read.c.o libmrsh.0.dylib.p/builtin_return.c.o libmrsh.0.dylib.p/builtin_set.c.o libmrsh.0.dylib.p/builtin_shift.c.o libmrsh.0.dylib.p/builtin_times.c.o libmrsh.0.dylib.p/builtin_trap.c.o libmrsh.0.dylib.p/builtin_true.c.o libmrsh.0.dylib.p/builtin_type.c.o libmrsh.0.dylib.p/builtin_ulimit.c.o libmrsh.0.dylib.p/builtin_umask.c.o libmrsh.0.dylib.p/builtin_unalias.c.o libmrsh.0.dylib.p/builtin_unset.c.o libmrsh.0.dylib.p/builtin_unspecified.c.o libmrsh.0.dylib.p/builtin_wait.c.o libmrsh.0.dylib.p/getopt.c.o libmrsh.0.dylib.p/hashtable.c.o libmrsh.0.dylib.p/parser_arithm.c.o libmrsh.0.dylib.p/parser_parser.c.o libmrsh.0.dylib.p/parser_program.c.o libmrsh.0.dylib.p/parser_word.c.o libmrsh.0.dylib.p/shell_arithm.c.o libmrsh.0.dylib.p/shell_entry.c.o libmrsh.0.dylib.p/shell_job.c.o libmrsh.0.dylib.p/shell_path.c.o libmrsh.0.dylib.p/shell_process.c.o libmrsh.0.dylib.p/shell_redir.c.o libmrsh.0.dylib.p/shell_shell.c.o libmrsh.0.dylib.p/shell_task_pipeline.c.o libmrsh.0.dylib.p/shell_task_simple_command.c.o libmrsh.0.dylib.p/shell_task_task.c.o libmrsh.0.dylib.p/shell_task_word.c.o libmrsh.0.dylib.p/shell_trap.c.o libmrsh.0.dylib.p/shell_word.c.o -Wl,-dead_strip_dylibs -Wl,-headerpad_max_install_names -Wl,-undefined,error -shared -install_name @rpath/libmrsh.0.dylib -compatibility_version 0 -current_version 0 -Wl,-exported_symbols_list /Users/lambdap/mrsh/libmrsh.darwin.sym
[60/63] cc -Iexample/highlight.p -Iexample -I../example -I../include -fcolor-diagnostics -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std=c99 -O0 -g -Wundef -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wfloat-equal -Wstrict-prototypes -Wredundant-decls -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wformat=2 -Wmissing-prototypes -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -Wno-unused-result -DHAVE_READLINE -MD -MQ example/highlight.p/highlight.c.o -MF example/highlight.p/highlight.c.o.d -o example/highlight.p/highlight.c.o -c ../example/highlight.c
[61/63] /usr/local/Cellar/meson/0.59.1/libexec/bin/meson --internal symbolextractor /Users/lambdap/mrsh/build libmrsh.0.dylib libmrsh.0.dylib libmrsh.0.dylib.p/libmrsh.0.dylib.symbols
[62/63] cc  -o mrsh mrsh.p/main.c.o mrsh.p/frontend_readline.c.o -Wl,-dead_strip_dylibs -Wl,-headerpad_max_install_names -Wl,-undefined,error -Wl,-rpath,@loader_path/ libmrsh.0.dylib -lreadline
[63/63] cc  -o example/highlight example/highlight.p/highlight.c.o -Wl,-dead_strip_dylibs -Wl,-headerpad_max_install_names -Wl,-undefined,error -Wl,-rpath,@loader_path/.. libmrsh.0.dylib

So the culprit linker options are never actually called, because meson never outputs them. I don’t know much about linking, especially on macOS, but it seems like my linker wants me to use -undefined error rather than the --no-undefined that’s in the ./configure script (I confirmed that by running ld with various options). So that’s easy. I’m not sure what to do about --as-needed, --version-script and -soname, which also risk causing errors.

@eli-schwartz
Copy link

It is to be expected that meson works -- meson internally knows how to handle such options as -Db_asneeded=true -Db_lundef=true and abstract them into the correct options for a specific compiler.

Seems like the handwritten configure script could be updated to support Darwin better though... I know little to nothing about that toolchain, but:

  • meson is creating a linker rule with -install_name @rpath/libmrsh.0.dylib while the configure script is trying to use -Wl,-install_name,libmrsh.so.0.0.0which, hmm, seems wrong for a couple reasons -- including the use of .so instead of .dylib
  • mrsh/configure

    Lines 214 to 217 in cd3c3a4

    for flag in -fPIC -Wl,--no-undefined -Wl,--as-needed
    do
    test_ldflags "$flag"
    done
    should likely be using || to attempt Darwin alternatives to the second/third ldflags trials there

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

4 participants