tangramdotdev/packages

Postgresql fails on macOS after removing gcc/g++ symlinks

Opened this issue · 0 comments

The default SDK used to provide gcc and g++ symlinks that pointed to clang and clang++ respectively. The only package that required these is postgresql, where we explicitly set CC and CXX to point to gcc and g++, instead of allowing the configure script to discover clang and clang++. With these links removed, postgres fails to compile:

lang -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Werror=unguarded-availability-new -Wendif-labels -Wmissing-format-attribute -Wcast-function-type -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-unuse
d-command-line-argument -Wno-compound-token-split-by-macro -Wno-cast-function-type-strict  -O2 -mtune=generic -pipe -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -fasynchronous-unwind-tables -fexceptions -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-str
ong  -fvisibility=hidden -bundle -o euc_tw_and_big5.dylib big5.o euc_tw_and_big5.o  -L../../../../../../src/port -L../../../../../../src/common  -Wl,-S -L/usr/local/lib -L/usr/local/lib  -Wl,-dead_strip_dylibs -fvisibility=hidden -bundle_loader ../../../../../../src/backend
/postgres
make[3]: *** [/Users/benlovy/.tangram/artifacts/dir_01djj3fqpnwjhwjhpqsnwe6pc6nf24qfdn0w1v5p6p5s3jcak7mhv0/src/Makefile.shlib:278: cyrillic_and_mic.dylib] Error 1
make[3]: Leaving directory '/Users/benlovy/.tangram/tmp/069rtvtd5dw751t5s3anfhxw7c/Users/tangram/work/src/backend/utils/mb/conversion_procs/cyrillic_and_mic'
make[2]: *** [Makefile:25: all-cyrillic_and_mic-recurse] Error 2
Undefined symbols for architecture arm64:
  "_LocalToUtf", referenced from:
      _big5_to_utf8 in utf8_and_big5.o
  "_UtfToLocal", referenced from:
      _utf8_to_big5 in utf8_and_big5.o
  "_check_encoding_conversion_args", referenced from:
      _big5_to_utf8 in utf8_and_big5.o
      _utf8_to_big5 in utf8_and_big5.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [/Users/benlovy/.tangram/artifacts/dir_01djj3fqpnwjhwjhpqsnwe6pc6nf24qfdn0w1v5p6p5s3jcak7mhv0/src/Makefile.shlib:278: utf8_and_big5.dylib] Error 1
make[3]: Leaving directory '/Users/benlovy/.tangram/tmp/069rtvtd5dw751t5s3anfhxw7c/Users/tangram/work/src/backend/utils/mb/conversion_procs/utf8_and_big5'
make[2]: *** [Makefile:25: all-utf8_and_big5-recurse] Error 2
Undefined symbols for architecture arm64:
  "_check_encoding_conversion_args", referenced from:
      _euc_jp_to_sjis in euc_jp_and_sjis.o
      _sjis_to_euc_jp in euc_jp_and_sjis.o
      _euc_jp_to_mic in euc_jp_and_sjis.o
      _mic_to_euc_jp in euc_jp_and_sjis.o
      _sjis_to_mic in euc_jp_and_sjis.o
      _mic_to_sjis in euc_jp_and_sjis.o
  "_pg_encoding_verifymbchar", referenced from:
      _euc_jp_to_sjis in euc_jp_and_sjis.o
      _sjis_to_euc_jp in euc_jp_and_sjis.o
      _euc_jp_to_mic in euc_jp_and_sjis.o
      _mic_to_euc_jp in euc_jp_and_sjis.o
      _mic_to_sjis in euc_jp_and_sjis.o
  "_report_invalid_encoding", referenced from:
      _euc_jp_to_sjis in euc_jp_and_sjis.o
      _sjis_to_euc_jp in euc_jp_and_sjis.o
      _euc_jp_to_mic in euc_jp_and_sjis.o
      _mic_to_euc_jp in euc_jp_and_sjis.o
      _sjis_to_mic in euc_jp_and_sjis.o
      _mic_to_sjis in euc_jp_and_sjis.o
  "_report_untranslatable_char", referenced from:
      _mic_to_euc_jp in euc_jp_and_sjis.o
      _mic_to_sjis in euc_jp_and_sjis.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [/Users/benlovy/.tangram/artifacts/dir_01djj3fqpnwjhwjhpqsnwe6pc6nf24qfdn0w1v5p6p5s3jcak7mhv0/src/Makefile.shlib:278: euc_jp_and_sjis.dylib] Error 1
make[3]: Leaving directory '/Users/benlovy/.tangram/tmp/069rtvtd5dw751t5s3anfhxw7c/Users/tangram/work/src/backend/utils/mb/conversion_procs/euc_jp_and_sjis'
make[2]: *** [Makefile:25: all-euc_jp_and_sjis-recurse] Error 2

Either diagnose and fix this issue in postgres, or as a last resort, re-introduce the hacky symlinks and use those.