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

Cannot build oils-for-unix-0.26.0 on macOS: time: illegal option -- f #2227

Open
latin-1 opened this issue Jan 8, 2025 · 2 comments
Open

Comments

@latin-1
Copy link

latin-1 commented Jan 8, 2025

macOS's /usr/bin/time does not support -f option.

Full logs:
~/Downloads/oils-for-unix-0.26.0 took 3s
❯ ./_build/oils.sh

./_build/oils.sh: Building oils-for-unix: _bin/cxx-opt-sh/oils-for-unix
    PWD = /Users/lxy/Downloads/oils-for-unix-0.26.0
    cxx = cxx
    variant = opt
    translator = mycpp

CXX _gen/bin/oils_for_unix.mycpp.cc
CXX _gen/bin/text_files.cc
time: illegal option -- f
usage: time [-al] [-h | -p] [-o file] utility [argument ...]
CXX _gen/core/runtime.asdl.cc
CXX _gen/core/value.asdl.cc
CXX _gen/cpp/build_stamp.cc
CXX _gen/data_lang/nil8.asdl.cc
CXX _gen/display/pretty.asdl.cc
CXX _gen/frontend/arg_types.cc
CXX _gen/frontend/consts.cc
CXX _gen/frontend/help_meta.cc
CXX _gen/frontend/id_kind.asdl.cc
CXX _gen/frontend/signal.cc
CXX _gen/frontend/syntax.asdl.cc
CXX _gen/osh/arith_parse.cc
CXX _gen/ysh/grammar_tables.cc
CXX cpp/core.cc
CXX cpp/data_lang.cc
In file included from cpp/data_lang.cc:5:
/Users/lxy/Downloads/oils-for-unix-0.26.0/data_lang/j8.h:76:15: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
   76 |       int n = sprintf((char*)*p_out, "\\u{%x}", ch);
      |               ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_stdio.h:274:1: note: 'sprintf' has been explicitly marked deprecated here
  274 | __deprecated_msg("This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead.")
      | ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:218:48: note: expanded from macro '__deprecated_msg'
  218 |         #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
      |                                                       ^
In file included from cpp/data_lang.cc:5:
/Users/lxy/Downloads/oils-for-unix-0.26.0/data_lang/j8.h:81:15: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
   81 |       int n = sprintf((char*)*p_out, "\\u%04x", ch);
      |               ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_stdio.h:274:1: note: 'sprintf' has been explicitly marked deprecated here
  274 | __deprecated_msg("This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead.")
      | ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:218:48: note: expanded from macro '__deprecated_msg'
  218 |         #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
      |                                                       ^
In file included from cpp/data_lang.cc:5:
/Users/lxy/Downloads/oils-for-unix-0.26.0/data_lang/j8.h:108:13: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
  108 |     int n = sprintf((char*)*p_out, "\\y%02x", ch);
      |             ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_stdio.h:274:1: note: 'sprintf' has been explicitly marked deprecated here
  274 | __deprecated_msg("This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead.")
      | ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:218:48: note: expanded from macro '__deprecated_msg'
  218 |         #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
      |                                                       ^
In file included from cpp/data_lang.cc:5:
/Users/lxy/Downloads/oils-for-unix-0.26.0/data_lang/j8.h:112:13: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
  112 |     int n = sprintf((char*)*p_out, "\\u%04x", result.codepoint);
      |             ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_stdio.h:274:1: note: 'sprintf' has been explicitly marked deprecated here
  274 | __deprecated_msg("This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead.")
      | ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:218:48: note: expanded from macro '__deprecated_msg'
  218 |         #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
      |                                                       ^
In file included from cpp/data_lang.cc:5:
/Users/lxy/Downloads/oils-for-unix-0.26.0/data_lang/j8.h:162:13: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
  162 |     int n = sprintf((char*)*p_out, "\\u%04x", ch);
      |             ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_stdio.h:274:1: note: 'sprintf' has been explicitly marked deprecated here
  274 | __deprecated_msg("This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead.")
      | ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:218:48: note: expanded from macro '__deprecated_msg'
  218 |         #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
      |                                                       ^
In file included from cpp/data_lang.cc:5:
/Users/lxy/Downloads/oils-for-unix-0.26.0/data_lang/j8.h:180:13: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
  180 |     int n = sprintf((char*)*p_out, "\\x%02x", **p_in);
      |             ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_stdio.h:274:1: note: 'sprintf' has been explicitly marked deprecated here
  274 | __deprecated_msg("This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead.")
      | ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:218:48: note: expanded from macro '__deprecated_msg'
  218 |         #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
      |                                                       ^
6 warnings generated.
CXX cpp/fanos.cc
CXX cpp/fanos_shared.c
clang++: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
CXX cpp/frontend_flag_spec.cc
CXX cpp/frontend_match.cc
CXX cpp/frontend_pyreadline.cc
cpp/frontend_pyreadline.cc:21:18: warning: unused variable 'gReadline' [-Wunused-variable]
   21 | static Readline* gReadline = nullptr;
      |                  ^~~~~~~~~
cpp/frontend_pyreadline.cc:94:13: warning: unused function 'readline_cb' [-Wunused-function]
   94 | static void readline_cb(char* line) {
      |             ^~~~~~~~~~~
2 warnings generated.
CXX cpp/libc.cc
CXX cpp/osh.cc
CXX cpp/osh_tdop.cc
CXX cpp/pgen2.cc
CXX cpp/pylib.cc
CXX cpp/stdlib.cc
CXX mycpp/bump_leak_heap.cc
CXX mycpp/gc_builtins.cc
mycpp/gc_builtins.cc:117:7: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
  117 |       sprintf(p, "\\x%02x", c & 0xff);
      |       ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_stdio.h:274:1: note: 'sprintf' has been explicitly marked deprecated here
  274 | __deprecated_msg("This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead.")
      | ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:218:48: note: expanded from macro '__deprecated_msg'
  218 |         #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
      |                                                       ^
mycpp/gc_builtins.cc:185:53: warning: 'static_assert' with no message is a C++17 extension [-Wc++17-extensions]
  185 |   static_assert(sizeof(long long) == sizeof(int64_t));
      |                                                     ^
      |                                                     , ""
2 warnings generated.
CXX mycpp/gc_iolib.cc
CXX mycpp/gc_mops.cc
CXX mycpp/gc_mylib.cc
CXX mycpp/gc_str.cc
CXX mycpp/hash.cc
CXX mycpp/mark_sweep_heap.cc
WAIT
LINK _bin/cxx-opt-sh/oils-for-unix
clang++: error: no such file or directory: '_build/obj/cxx-opt-sh/_gen/bin/oils_for_unix.o'
@latin-1 latin-1 changed the title Cannot build oils-0.26.0 on macOS: time: illegal option -- f Cannot build oils-for-unix-0.26.0 on macOS: time: illegal option -- f Jan 8, 2025
@andychu
Copy link
Contributor

andychu commented Jan 9, 2025

Thanks for reporting this! This was a regression

@andychu
Copy link
Contributor

andychu commented Jan 21, 2025

I fixed this to conditionally test for time -f

This will be out with the next release. Thanks for the report!

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

No branches or pull requests

2 participants