fluent-bit: build: can't compile `onigmo` on macOS: `Undefined symbols for architecture x86_64`

Bug Report

Describe the bug Can’t compile fluent-bit on macOS.

To Reproduce

    1. $ cd build/
    1. cmake ../
    1. make
$ make

[  1%] Built target backtrace
Consolidate compiler generated dependencies of target c-ares
[  7%] Built target c-ares
Consolidate compiler generated dependencies of target jsmn
[  7%] Built target jsmn
Consolidate compiler generated dependencies of target sqlite3
[  7%] Built target sqlite3
Consolidate compiler generated dependencies of target xxd-c
[  7%] Built target xxd-c
[  8%] Performing build step for 'onigmo'
Making all in .
Making all in sample
libtool: link: gcc -std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops -o encode encode.o  ../.libs/libonigmo.a
ld: warning: ignoring file ../.libs/libonigmo.a, building for macOS-x86_64 but attempting to link with file built for macOS-x86_64
Undefined symbols for architecture x86_64:
  "_OnigDefaultSyntax", referenced from:
      _exec in encode.o
      _exec_deluxe in encode.o
  "_OnigEncodingASCII", referenced from:
      _main in encode.o
  "_OnigEncodingBIG5", referenced from:
      _main in encode.o
  "_OnigEncodingEUC_CN", referenced from:
      _main in encode.o
  "_OnigEncodingEUC_KR", referenced from:
      _main in encode.o
  "_OnigEncodingEUC_TW", referenced from:
      _main in encode.o
  "_OnigEncodingGB18030", referenced from:
      _main in encode.o
  "_OnigEncodingISO_8859_1", referenced from:
      _main in encode.o
  "_OnigEncodingISO_8859_10", referenced from:
      _main in encode.o
  "_OnigEncodingISO_8859_11", referenced from:
      _main in encode.o
  "_OnigEncodingISO_8859_13", referenced from:
      _main in encode.o
  "_OnigEncodingISO_8859_14", referenced from:
      _main in encode.o
  "_OnigEncodingISO_8859_15", referenced from:
      _main in encode.o
  "_OnigEncodingISO_8859_16", referenced from:
      _main in encode.o
  "_OnigEncodingISO_8859_2", referenced from:
      _main in encode.o
  "_OnigEncodingISO_8859_3", referenced from:
      _main in encode.o
  "_OnigEncodingISO_8859_4", referenced from:
      _main in encode.o
  "_OnigEncodingISO_8859_5", referenced from:
      _main in encode.o
  "_OnigEncodingISO_8859_6", referenced from:
      _main in encode.o
  "_OnigEncodingISO_8859_7", referenced from:
      _main in encode.o
  "_OnigEncodingISO_8859_8", referenced from:
      _main in encode.o
  "_OnigEncodingISO_8859_9", referenced from:
      _main in encode.o
  "_OnigEncodingKOI8_R", referenced from:
      _main in encode.o
  "_OnigEncodingKOI8_U", referenced from:
      _main in encode.o
  "_OnigEncodingUTF_16BE", referenced from:
      _main in encode.o
  "_OnigEncodingUTF_16LE", referenced from:
      _main in encode.o
  "_OnigEncodingUTF_32BE", referenced from:
      _main in encode.o
  "_OnigEncodingUTF_32LE", referenced from:
      _main in encode.o
  "_OnigEncodingWindows_1250", referenced from:
      _main in encode.o
  "_OnigEncodingWindows_1251", referenced from:
      _main in encode.o
  "_OnigEncodingWindows_1252", referenced from:
      _main in encode.o
  "_OnigEncodingWindows_1253", referenced from:
      _main in encode.o
  "_OnigEncodingWindows_1254", referenced from:
      _main in encode.o
  "_OnigEncodingWindows_1257", referenced from:
      _main in encode.o
  "_onig_end", referenced from:
      _exec in encode.o
      _exec_deluxe in encode.o
  "_onig_error_code_to_str", referenced from:
      _exec in encode.o
      _exec_deluxe in encode.o
      _search in encode.o
  "_onig_free", referenced from:
      _exec in encode.o
      _exec_deluxe in encode.o
  "_onig_get_encoding", referenced from:
      _search in encode.o
  "_onig_new", referenced from:
      _exec in encode.o
  "_onig_new_deluxe", referenced from:
      _exec_deluxe in encode.o
  "_onig_region_free", referenced from:
      _search in encode.o
  "_onig_region_new", referenced from:
      _search in encode.o
  "_onig_search", referenced from:
      _search in encode.o
  "_onigenc_str_bytelen_null", referenced from:
      _exec in encode.o
      _exec_deluxe in encode.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[5]: *** [encode] Error 1
make[4]: *** [all-recursive] Error 1
make[3]: *** [all] Error 2
make[2]: *** [onigmo-prefix/src/onigmo-stamp/onigmo-build] Error 2
make[1]: *** [CMakeFiles/onigmo.dir/all] Error 2
make: *** [all] Error 2

and $ make -j 16 throws different error: (this is different issue i guess)

$ make -j 16

make[1]: /Library/Developer/CommandLineTools/usr/bin/make: Permission denied
make[1]: /Library/Developer/CommandLineTools/usr/bin/make: Permission denied
make[1]: *** [CMakeFiles/onigmo.dir/all] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/backtrace.dir/all] Error 1
make[1]: /Library/Developer/CommandLineTools/usr/bin/make: Permission denied
make[1]: /Library/Developer/CommandLineTools/usr/bin/make: Permission denied
make[1]: /Library/Developer/CommandLineTools/usr/bin/make: Permission denied
make[1]: *** [tools/xxd-c/CMakeFiles/xxd-c.dir/all] Error 1
make[1]: *** [lib/c-ares-809d5e84/src/lib/CMakeFiles/c-ares.dir/all] Error 1
make[1]: *** [lib/sqlite-amalgamation-3330000/CMakeFiles/sqlite3.dir/all] Error 1
[  0%] Built target jsmn
make: *** [all] Error 2

Expected behavior It should compile?

Screenshots

Your Environment

  • Version used: cmake version 3.22.3 and GNU Make 3.81
  • Configuration: default
  • Environment name and version (e.g. Kubernetes? What version?): macOS 12.1
  • Server type and version:
  • Operating System and version: Darwin 21.2.0 Darwin Kernel Version 21.2.0: Sun Nov 28 20:28:54 PST 2021; root:xnu-8019.61.5~1/RELEASE_X86_64 x86_64 and xcode-select version 2392
  • Filters and plugins: -

Additional context -

What I’m missing here?

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Comments: 15 (15 by maintainers)

Most upvoted comments

we moved to our maintained version of Onigmo in https://github.com/fluent/onigmo

we also added CMake support into onigmo, merged into Fluent Bit:

it should be ok now.