Re: On Mac Ventura, Pike v9 missing GMP symbols

Mike Kilmer <[email protected]> Sat, 9 Mar 2024 16:54:56 -0600
Newsgroups gmane.comp.lang.pike.user
Message-ID <[email protected]>
--Apple-Mail=_20D50A57-4565-4534-8998-F6188630F05A
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

I appreciate your patience, Bill.

Contents of the linker_options is:

/Users/mikekilmer/pike/build/darwin-22.6.0-x86_64/modules/Gmp/module.a
-L/Library/Java/JavaVirtualMachines/temurin-21.jdk/Contents/Home/lib/. =
-R/Library/Java/JavaVirtualMachines/temurin-21.jdk/Contents/Home/lib/. =
-L/Library/Java/JavaVirtualMachines/temurin-21.jdk/Contents/Home/lib/ =
-R/Library/Java/JavaVirtualMachines/temurin-21.jdk/Contents/Home/lib/ =
-L/Library/Java/JavaVirtualMachines/temurin-21.jdk/Contents/Home/lib//serv=
er =
-R/Library/Java/JavaVirtualMachines/temurin-21.jdk/Contents/Home/lib//serv=
er=20
=
/Users/mikekilmer/pike/build/darwin-22.6.0-x86_64/modules/_Debug/module.a
modules/_Image_TIFF/dummy.o
=
/Users/mikekilmer/pike/build/darwin-22.6.0-x86_64/modules/_Stdio/module.a
/Users/mikekilmer/pike/build/darwin-22.6.0-x86_64/modules/_math/module.a
=
/Users/mikekilmer/pike/build/darwin-22.6.0-x86_64/modules/system/module.a

I've tried building Gmp from scratch, downloading and running `make =
install`.

And the output ends with:

=
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolc=
hain/usr/bin/ranlib: file: /usr/local/lib/libgmp.a(mp_clz_tab.o) has no =
symbols
=
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolc=
hain/usr/bin/ranlib: file: /usr/local/lib/libgmp.a(obprintf.o) has no =
symbols
=
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolc=
hain/usr/bin/ranlib: file: /usr/local/lib/libgmp.a(obvprintf.o) has no =
symbols
=
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolc=
hain/usr/bin/ranlib: file: /usr/local/lib/libgmp.a(obprntffuns.o) has no =
symbols
=
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolc=
hain/usr/bin/ranlib: file: /usr/local/lib/libgmp.a(repl-vsnprintf.o) has =
no symbols

If I run strings on the first file in the above list and grep "gmpz", =
many are present:

___gmpz_legendre
___gmpz_abs
___gmpz_add
___gmpz_add_ui
___gmpz_addmul
___gmpz_submul
...abridged
___gmpz_urandomb
___gmpz_urandomm
___gmpz_xor


ls -la /usr/local/lib/ | grep gmp
-rwxr-xr-x     1 mikekilmer  staff   576K Mar  9 16:28 libgmp.10.dylib*
-rw-r--r--     1 mikekilmer  staff   960K Mar  9 16:28 libgmp.a
lrwxr-xr-x     1 mikekilmer  staff    15B Mar  9 16:28 libgmp.dylib@ -> =
libgmp.10.dylib
-rwxr-xr-x     1 mikekilmer  staff   1.1K Mar  9 16:28 libgmp.la*

Tried reinstalling via Homebrew with -s flag to compile from source.

Saw this: ./configure --enable-cxx --with-pic =
--build=3Dwestmere-apple-darwin22

(Had to `brew link --overwrite gmp`)

	Side note:
		$ Unexpected '.la' files:
 			 /usr/local/lib/libgmp.la <http://libgmp.la/>

		Which I imagine is from the non-brew build and can be =
deleted.

Still getting same build error:

Undefined symbols for architecture x86_64:
  "___gmp_set_memory_functions", referenced from:
      _pike_module_Gmp_init in module.a(mpz_glue.o)

Confirmed ("it's *in* there"):

$ strings /usr/local/lib/libgmp.a | grep ___gmp_set_memory_functions
___gmp_set_memory_functions

Scratching my head. It's like the symbol is there but =
_pike_module_Gmp_init can't recognize/access it.



--Apple-Mail=_20D50A57-4565-4534-8998-F6188630F05A
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=us-ascii

<html><head><meta http-equiv=3D"content-type" content=3D"text/html; =
charset=3Dus-ascii"></head><body style=3D"overflow-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;">I appreciate =
your patience, Bill.<div><br></div><div>Contents of the linker_options =
is:</div><div><br></div><div><div>/Users/mikekilmer/pike/build/darwin-22.6=
.0-x86_64/modules/Gmp/module.a</div><div>-L/Library/Java/JavaVirtualMachin=
es/temurin-21.jdk/Contents/Home/lib/. =
-R/Library/Java/JavaVirtualMachines/temurin-21.jdk/Contents/Home/lib/. =
-L/Library/Java/JavaVirtualMachines/temurin-21.jdk/Contents/Home/lib/ =
-R/Library/Java/JavaVirtualMachines/temurin-21.jdk/Contents/Home/lib/ =
-L/Library/Java/JavaVirtualMachines/temurin-21.jdk/Contents/Home/lib//serv=
er =
-R/Library/Java/JavaVirtualMachines/temurin-21.jdk/Contents/Home/lib//serv=
er&nbsp;</div><div>/Users/mikekilmer/pike/build/darwin-22.6.0-x86_64/modul=
es/_Debug/module.a</div><div>modules/_Image_TIFF/dummy.o</div><div>/Users/=
mikekilmer/pike/build/darwin-22.6.0-x86_64/modules/_Stdio/module.a</div><d=
iv>/Users/mikekilmer/pike/build/darwin-22.6.0-x86_64/modules/_math/module.=
a</div><div>/Users/mikekilmer/pike/build/darwin-22.6.0-x86_64/modules/syst=
em/module.a</div></div><div><br></div><div>I've tried building Gmp from =
scratch, downloading and running `make =
install`.</div><div><br></div><div>And the output ends =
with:</div><div><br></div><div><div>/Applications/Xcode.app/Contents/Devel=
oper/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: =
/usr/local/lib/libgmp.a(mp_clz_tab.o) has no =
symbols</div><div>/Applications/Xcode.app/Contents/Developer/Toolchains/Xc=
odeDefault.xctoolchain/usr/bin/ranlib: file: =
/usr/local/lib/libgmp.a(obprintf.o) has no =
symbols</div><div>/Applications/Xcode.app/Contents/Developer/Toolchains/Xc=
odeDefault.xctoolchain/usr/bin/ranlib: file: =
/usr/local/lib/libgmp.a(obvprintf.o) has no =
symbols</div><div>/Applications/Xcode.app/Contents/Developer/Toolchains/Xc=
odeDefault.xctoolchain/usr/bin/ranlib: file: =
/usr/local/lib/libgmp.a(obprntffuns.o) has no =
symbols</div><div>/Applications/Xcode.app/Contents/Developer/Toolchains/Xc=
odeDefault.xctoolchain/usr/bin/ranlib: file: =
/usr/local/lib/libgmp.a(repl-vsnprintf.o) has no =
symbols</div></div><div><br></div><div>If I run strings on the first =
file in the above list and grep "gmpz", many are =
present:</div><div><br></div><div><div>___gmpz_legendre</div><div>___gmpz_=
abs</div><div>___gmpz_add</div><div>___gmpz_add_ui</div><div>___gmpz_addmu=
l</div><div>___gmpz_submul</div><div>...abridged</div><div>___gmpz_urandom=
b</div><div>___gmpz_urandomm</div><div>___gmpz_xor</div></div><div><br></d=
iv><div><br></div><div><div>ls -la /usr/local/lib/ | grep =
gmp</div><div>-rwxr-xr-x &nbsp; &nbsp; 1 mikekilmer &nbsp;staff &nbsp; =
576K Mar &nbsp;9 16:28 libgmp.10.dylib*</div><div>-rw-r--r-- &nbsp; =
&nbsp; 1 mikekilmer &nbsp;staff &nbsp; 960K Mar &nbsp;9 16:28 =
libgmp.a</div><div>lrwxr-xr-x &nbsp; &nbsp; 1 mikekilmer &nbsp;staff =
&nbsp; &nbsp;15B Mar &nbsp;9 16:28 libgmp.dylib@ -&gt; =
libgmp.10.dylib</div><div>-rwxr-xr-x &nbsp; &nbsp; 1 mikekilmer =
&nbsp;staff &nbsp; 1.1K Mar &nbsp;9 16:28 =
libgmp.la*</div></div><div><br></div><div>Tried reinstalling via =
Homebrew with -s flag to compile from =
source.</div><div><br></div><div>Saw this:&nbsp;./configure --enable-cxx =
--with-pic --build=3Dwestmere-apple-darwin22</div><div><br></div><div>(Had=
 to `brew link --overwrite =
gmp`)</div><div><div><br></div></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>Side note:</div><div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">		</span>$ =
Unexpected '.la' files:</div><div>&nbsp;<span class=3D"Apple-tab-span" =
style=3D"white-space:pre">			</span> =
/usr/local/lib/<a =
href=3D"http://libgmp.la">libgmp.la</a></div></div><div><br></div><div><sp=
an class=3D"Apple-tab-span" style=3D"white-space:pre">		=
</span>Which I imagine is from the non-brew build and can be =
deleted.</div><div><br></div><div>Still getting same build =
error:</div><div><br></div><div><div>Undefined symbols for architecture =
x86_64:</div><div>&nbsp; "___gmp_set_memory_functions", referenced =
from:</div><div>&nbsp; &nbsp; &nbsp; _pike_module_Gmp_init in =
module.a(mpz_glue.o)</div></div><div><br></div><div>Confirmed ("it's =
*in* there"):</div><div><br></div><div><div>$ strings =
/usr/local/lib/libgmp.a | grep =
___gmp_set_memory_functions</div><div>___gmp_set_memory_functions</div></d=
iv><div><br></div><div>Scratching my head. It's like the symbol is there =
but&nbsp;<span style=3D"caret-color: rgb(0, 0, 0); color: rgb(0, 0, =
0);">_pike_module_Gmp_init</span>&nbsp;can't recognize/access =
it.</div><div><br></div><div><br></div></body></html>=

--Apple-Mail=_20D50A57-4565-4534-8998-F6188630F05A--