Opened 5 months ago
Closed 5 months ago
#70314 closed defect (fixed)
mysql8 @8.4.0_4: ld: symbol(s) not found for architecture x86_64
Reported by: | BjarneDMat | Owned by: | herbygillot (Herby Gillot) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.9.3 |
Keywords: | Cc: | jhoyt4 | |
Port: | mysql8 |
Description (last modified by ryandesign (Ryan Carsten Schmidt))
$=> system_profiler -detailLevel mini SPHardwareDataType SPSoftwareDataType Hardware: Hardware Overview: Model Name: Mac Pro Model Identifier: MacPro5,1 Hyper-Threading Technology: Enabled Boot ROM Version: 9144.0.9.2.0 SMC Version (system): 1.39f11 Software: System Software Overview: System Version: macOS 10.15.7 (19H1519) Kernel Version: Darwin 19.6.0
:debug:main Starting logging for mysql8 @8.4.0_4 :debug:sysinfo macOS 10.15.7 (darwin/19.6.0) arch i386 :debug:sysinfo MacPorts 2.9.3 :debug:sysinfo Xcode 12.4, CLT 12.4.0.0.1.1610135815 :debug:sysinfo SDK 10.15 :debug:sysinfo MACOSX_DEPLOYMENT_TARGET: 10.15
:info:build [ 22%] Built target ndbportlib :info:build Undefined symbols for architecture x86_64: :info:build "_EVP_CIPHER_get_block_size", referenced from: :info:build my_aes_get_size(unsigned int, my_aes_opmode) in libmysys.a(my_aes_openssl.cc.o) :info:build "_EVP_CIPHER_get_iv_length", referenced from: :info:build my_aes_encrypt(unsigned char const*, unsigned int, unsigned char*, unsigned char const*, unsigned int, my_aes_opmode, unsigned char const*, bool, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*) in libmysys.a(my_aes_openssl.cc.o) :info:build my_aes_decrypt(unsigned char const*, unsigned int, unsigned char*, unsigned char const*, unsigned int, my_aes_opmode, unsigned char const*, bool, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >*) in libmysys.a(my_aes_openssl.cc.o) :info:build my_aes_needs_iv(my_aes_opmode) in libmysys.a(my_aes_openssl.cc.o) :info:build "_EVP_PKEY_CTX_add1_hkdf_info", referenced from: :info:build Key_hkdf_function::derive_key(unsigned char const*, unsigned int, unsigned char*, unsigned int) in libmysys.a(my_kdf.cc.o) :info:build "_EVP_PKEY_CTX_set1_hkdf_key", referenced from: :info:build Key_hkdf_function::derive_key(unsigned char const*, unsigned int, unsigned char*, unsigned int) in libmysys.a(my_kdf.cc.o) :info:build "_EVP_PKEY_CTX_set1_hkdf_salt", referenced from: :info:build Key_hkdf_function::derive_key(unsigned char const*, unsigned int, unsigned char*, unsigned int) in libmysys.a(my_kdf.cc.o) :info:build "_EVP_PKEY_CTX_set_hkdf_md", referenced from: :info:build Key_hkdf_function::derive_key(unsigned char const*, unsigned int, unsigned char*, unsigned int) in libmysys.a(my_kdf.cc.o) :info:build ld: symbol(s) not found for architecture x86_64
It looks as if the changes jhoyt4 made in https://github.com/macports/macports-ports/pull/24615 has introduced some new errors for architecture x86_64.
mysql8 @8.4.0_3 does compile & install and works correctly w/ my PR https://github.com/macports/macports-ports/pull/24232
I have de-activated boost178 as described in #70061
Attachments (1)
Change History (14)
Changed 5 months ago by BjarneDMat
comment:1 Changed 5 months ago by jhoyt4
comment:2 Changed 5 months ago by jhoyt4
Just built successfully on:
macOS 14.5 23F79 x86_64
Xcode 15.3 15E204a
No issues
Perhaps this is isolated to Catalina and other "older" OSes?
comment:4 Changed 5 months ago by ryandesign (Ryan Carsten Schmidt)
Description: | modified (diff) |
---|---|
Owner: | set to herbygillot |
Status: | new → assigned |
Summary: | [mysql8] ld: symbol(s) not found for architecture x86_64 → mysql8 @8.4.0_4: ld: symbol(s) not found for architecture x86_64 |
comment:5 Changed 5 months ago by BjarneDMat
I tried re-introducing the patches from 8.4.0_3 into 8.4.0_4 & it compiled.
openssl3 @3.3.1_1 (active)
Presently, I'm trying to triage regarding whitch patch fixes the issue. Also trying 8.4.1_0.
comment:6 Changed 5 months ago by BjarneDMat
8.4.1_0 fails to compile on system as reported w/ the same errors
Re-Introducing patch-ssl.cmake.diff
fixes the issue in both 8.4.0_4 and 8.4.1_0
Now, to triage patch-ssl.cmake.diff
to see which part(s) of the patch (is|are) necessary.
comment:7 Changed 5 months ago by BjarneDMat
The second part - @@ -350,9 +352,26 @@
- of patch-ssl.cmake.diff
is the only one necessary in order for 8.4.1_0 to compile on my reported system.
comment:8 follow-up: 11 Changed 5 months ago by jhoyt4
Interesting, I have no clue why cmake sets OPENSSL_ROOT_DIR automatically on newer systems but not on Catalina.
Would you mind trying to compile again, this time leave off the patch and remove this line 172 from the portfile:
-DOPENSSL_ROOT_DIR=[openssl::install_area] \
I may have been overzealous in my attempt to remove flags from the openssl portgroup. If this works for you, IMHO this would be a better solution that carrying an extra patchfile.
comment:9 Changed 5 months ago by jhoyt4
For those following along, the reason why @@ -350,9 +352,26 @@ - of patch-ssl.cmake.diff works is it removes the following logic from the cmake process:
- # For APPLE we set the hint ${HOMEBREW_HOME}/openssl - IF(APPLE AND NOT OPENSSL_ROOT_DIR) - SET(OPENSSL_ROOT_DIR "${HOMEBREW_HOME}/openssl")
For some reason (...and because I removed the openssl portgroup flag...), cmake is not setting OPENSSL_ROOT_DIR on Catalina, and so the logic is setting that value to homebrew's default.
comment:10 Changed 5 months ago by jhoyt4
PR opened to resolve: https://github.com/macports/macports-ports/pull/24779
I'll convert from draft to final once @BjarneDMat confirms this is resolved by fixing the flag or whether it needs the patch file.
comment:11 Changed 5 months ago by BjarneDMat
Replying to jhoyt4:
Would you mind trying to compile again, this time leave off the patch and remove this line 172 from the portfile:
-DOPENSSL_ROOT_DIR=[openssl::install_area] \
SUCCESS :-)
comment:13 Changed 5 months ago by jhoyt4
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Actually, you're trying to build against the update pushed in PR24696 https://github.com/macports/macports-ports/pull/24696
That's a newer PR that removes the cmake patches I hacked up and performs the install using the "system" mechanism that mysql8 devs said we should be using (not trying to be pendantic, just trying to help triage which mod).
":debug:main Starting logging for mysql8 @8.4.0_4" tells me that much.
Also 8.4.0_4 should be the version your report in the bug report.
Have you tested against 8.4.1? @herbygillot just pushed an update to that version [c0c4e0b8f9d7466a5ac3198fba11b22adf9f6f08/macports-ports]
I'm not claiming 8.4.1 will solve the problem - just trying to get a better baseline.
Very curious how this got through the CI chain and the builders without erroring on the OS 12 and OS 13 runners which run x86_64.