Opened 20 months ago

Last modified 19 months ago

#71529 assigned defect

pari @2.17.0 +fltk +mt: Undefined fltk symbols

Reported by: ballapete (Peter "Pete" Dyballa) Owned by: wbl (Watson Ladd)
Priority: Normal Milestone:
Component: ports Version: 2.10.5
Keywords: Cc:
Port: pari

Description

/opt/local/bin/clang-mp-17  -o "/opt/local/var/macports/build/rsync.macports.org_macports_release_tarballs_ports_math_pari/pari/work/pari-2.17.0/Odarwin-x86_64"/libpari-gmp-tls.dylib -dynamiclib  -O3 -Wall -fno-strict-aliasing  -pipe -Os -arch x86_64 -I/opt/local/include -fPIC -Wl,-compatibility_version,2.17.0,-current_version,2.17.0  mpker.o mpinl.o F2v.o F2x.o F2xqE.o F3v.o FF.o Fle.o Flv.o Flx.o FlxX.o FlxqE.o Flxq_log.o FpE.o FpV.o FpX.o FpXQX_factor.o FpXX.o FpX_factor.o QX_factor.o Qfb.o RgV.o RgX.o Ser.o ZG.o ZV.o ZX.o Zp.o alglin1.o alglin2.o alglin3.o aprcl.o arith1.o arith2.o base1.o base2.o base3.o base4.o base5.o bb_group.o bb_hnf.o bern.o bibli1.o bibli2.o bit.o bnflog.o bnfunits.o buch1.o buch2.o buch3.o buch4.o char.o concat.o crvwtors.o digits.o dirichlet.o ecpp.o ellanal.o elliptic.o ellisog.o ellpadic.o ellpadiclambdamu.o ellrank.o ellsea.o elltors.o factcyclo.o galconj.o gen1.o gen2.o gen3.o grossenchar.o hgm.o hnf_snf.o hyperell.o hypergeom.o ifactor1.o ispower.o kummer.o lambert.o lerch.o lfun.o lfunlarge.o lfunquad.o lfunutils.o lll.o map.o matperm.o mellininv.o mftrace.o modsym.o msfarey.o nffactor.o nflist.o nflistQT.o pclgp.o perm.o polarit1.o polarit2.o polarit3.o polclass.o polmodular.o prime.o qfisom.o qfsolve.o quad.o ramanujantau.o random.o rootpol.o subcyclo.o subfield.o subgroup.o trans1.o trans2.o trans3.o volcano.o zetamult.o anal.o compile.o default.o es.o eval.o forprime.o gplib.o hash.o init.o intnum.o members.o paricfg.o pariinl.o parse.o readline.o str.o sumiter.o algebras.o elldata.o ellfromeqn.o forperm.o forsubset.o galois.o galpol.o genus2red.o groupid.o krasner.o mpqs.o part.o ratpoints.o stark.o thue.o darwin.o mt.o pthread.o plotport.o plottty.o  -lgmp   -lpthread  
if test "libpari-gmp-tls.dylib" != "libpari.dylib"; then 	  rm -f libpari.dylib;	  ln -s libpari-gmp-tls.dylib libpari.dylib; fi
if test "libpari-gmp-tls.dylib" != "libpari-gmp-tls.dylib"; then 	  rm -f libpari-gmp-tls.dylib;	  ln -s libpari-gmp-tls.dylib libpari-gmp-tls.dylib; fi
rm -f gp-dyn
/opt/local/bin/clang-mp-17  -o gp-dyn -L"/opt/local/var/macports/build/rsync.macports.org_macports_release_tarballs_ports_math_pari/pari/work/pari-2.17.0/Odarwin-x86_64" -O3 -Wall -fno-strict-aliasing  -pipe -Os -arch x86_64 -I/opt/local/include -Wl,-search_paths_first -L/opt/local/lib -Wl,-headerpad_max_install_names -arch x86_64 emacs.o gp.o gp_rl.o texmacs.o whatnow.o plotfltk.o  -lreadline -lpari  
Undefined symbols for architecture x86_64:
  "Fl::run()", referenced from:
      draw(PARI_plot*, long*, long*, long*) in plotfltk.o
  "Fl::visual(int)", referenced from:
      draw(PARI_plot*, long*, long*, long*) in plotfltk.o
  "Fl::e_state", referenced from:
      Plotter::handle(int) in plotfltk.o
  "Fl::e_keysym", referenced from:
      Plotter::handle(int) in plotfltk.o
  "Fl_Group::end()", referenced from:
      draw(PARI_plot*, long*, long*, long*) in plotfltk.o
  "Fl_Window::fullscreen()", referenced from:
      Plotter::handle(int) in plotfltk.o
  "Fl_Window::size_range_()", referenced from:
      Plotter::handle(int) in plotfltk.o
      draw(PARI_plot*, long*, long*, long*) in plotfltk.o
  "Fl_Window::fullscreen_off(int, int, int, int)", referenced from:
      Plotter::handle(int) in plotfltk.o
  "Fl_Window::hide()", referenced from:
      vtable for Plotter in plotfltk.o
  "Fl_Window::show()", referenced from:
      vtable for Plotter in plotfltk.o
  "Fl_Window::flush()", referenced from:
      vtable for Plotter in plotfltk.o
  "Fl_Window::resize(int, int, int, int)", referenced from:
      vtable for Plotter in plotfltk.o
  "Fl_Window::Fl_Window(int, int, char const*)", referenced from:
      draw(PARI_plot*, long*, long*, long*) in plotfltk.o
      Plotter::Plotter(PARI_plot*, long*, long*, long*) in plotfltk.o
      Plotter::Plotter(PARI_plot*, long*, long*, long*) in plotfltk.o
  "Fl_Window::~Fl_Window()", referenced from:
      Plotter::~Plotter() in plotfltk.o
  "typeinfo for Fl_Window", referenced from:
      typeinfo for Plotter in plotfltk.o
  "vtable for __cxxabiv1::__si_class_type_info", referenced from:
      typeinfo for Plotter in plotfltk.o
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "operator delete(void*, unsigned long)", referenced from:
      Plotter::~Plotter() in plotfltk.o
      draw(PARI_plot*, long*, long*, long*) in plotfltk.o
  "operator new(unsigned long)", referenced from:
      draw(PARI_plot*, long*, long*, long*) in plotfltk.o
  "___gxx_personality_v0", referenced from:
      Dwarf Exception Unwind Info (__eh_frame) in plotfltk.o
  "_fl_graphics_driver", referenced from:
      DrawArc(void*, long, long, long, long) in plotfltk.o
      FillArc(void*, long, long, long, long) in plotfltk.o
      DrawRectangle(void*, long, long, long, long) in plotfltk.o
      DrawString(void*, long, long, char*, long) in plotfltk.o
      fl_color(unsigned int) in plotfltk.o
      fl_point(int, int) in plotfltk.o
      fl_rectf(int, int, int, int) in plotfltk.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[1]: *** [gp-dyn] Error 1
make[1]: Leaving directory `/opt/local/var/macports/build/rsync.macports.org_macports_release_tarballs_ports_math_pari/pari/work/pari-2.17.0/Odarwin-x86_64'

Work continued on the command line:

root 2154 /\ cd /opt/local/var/macports/build/rsync.macports.org_macports_release_tarballs_ports_math_pari/pari/work/pari-2.17.0/Odarwin-x86_64

root 2155 /\ /opt/local/bin/clang-mp-17  -o gp-dyn -L"/opt/local/var/macports/build/rsync.macports.org_macports_release_tarballs_ports_math_pari/pari/work/pari-2.17.0/Odarwin-x86_64" -O3 -Wall -fno-strict-aliasing  -pipe -Os -arch x86_64 -I/opt/local/include -Wl,-search_paths_first -L/opt/local/lib -Wl,-headerpad_max_install_names -arch x86_64 emacs.o gp.o gp_rl.o texmacs.o whatnow.o plotfltk.o  -lreadline -lpari -lfltk
Undefined symbols for architecture x86_64:
  "vtable for __cxxabiv1::__si_class_type_info", referenced from:
      typeinfo for Plotter in plotfltk.o
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "operator delete(void*, unsigned long)", referenced from:
      Plotter::~Plotter() in plotfltk.o
      draw(PARI_plot*, long*, long*, long*) in plotfltk.o
  "operator new(unsigned long)", referenced from:
      draw(PARI_plot*, long*, long*, long*) in plotfltk.o
  "___gxx_personality_v0", referenced from:
      Dwarf Exception Unwind Info (__eh_frame) in plotfltk.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

root 2156 /\ /opt/local/bin/clang-mp-17  -o gp-dyn -L"/opt/local/var/macports/build/rsync.macports.org_macports_release_tarballs_ports_math_pari/pari/work/pari-2.17.0/Odarwin-x86_64" -O3 -Wall -fno-strict-aliasing  -pipe -Os -arch x86_64 -I/opt/local/include -Wl,-search_paths_first -L/opt/local/lib -Wl,-headerpad_max_install_names -arch x86_64 emacs.o gp.o gp_rl.o texmacs.o whatnow.o plotfltk.o  -lreadline -lpari -lfltk -lstdc++

root 2157 /\ l gp-dyn
-rwxr-xr-x  1 root  macports  83960 12 Dez 22:51 gp-dyn

root 2158 /\ ./gp-dyn --help
### Usage: ./gp-dyn [options] [GP files]
Available options:
  [-f,--fast]		Fast start: do not read .gprc
  [-q,--quiet]		Quiet mode: do not print banner and history numbers
  [-s stacksize]	Start with the PARI stack of given size (in bytes)
  [--default key=val]	Execute default(key,val) on startup
  [--emacs]		Run as if in Emacs shell
  [--help]		Print this message
  [--test]		Test mode. No history, wrap long lines (bench only)
  [--texmacs]		Run as if using TeXmacs frontend
  [--version]		Output version info and exit
  [--version-short]	Output version number and exit

Attachments (1)

main.log (190.3 KB) - added by ballapete (Peter "Pete" Dyballa) 20 months ago.
Main.log from High Sierra 10.13.6

Download all attachments as: .zip

Change History (7)

Changed 20 months ago by ballapete (Peter "Pete" Dyballa)

Attachment: main.log added

Main.log from High Sierra 10.13.6

comment:1 Changed 20 months ago by ryandesign (Ryan Carsten Schmidt)

Cc: watsonbladd@… removed
Keywords: highsierra removed
Owner: set to wbl
Status: newassigned
Summary: pari @2.17.0 +fltk +mt does not build o macOS High Sierra, version 10.13.6, because of missing delispari @2.17.0 +fltk +mt: Undefined fltk symbols

Ok, because you've selected the +fltk variant, it builds things that require the fltk library, but it has failed to link with that library, therefore the symbols that would have been found in that library are not found.

I can reproduce it on macOS 12.

comment:2 Changed 20 months ago by ryandesign (Ryan Carsten Schmidt)

comment:3 Changed 20 months ago by wbl (Watson Ladd)

I'll look into it this weekend or next.

Does this happen with building from source? Might just be a small adjustment to the portfile needed.

comment:4 in reply to:  3 Changed 20 months ago by ballapete (Peter "Pete" Dyballa)

Replying to wbl:

Does this happen with building from source? Might just be a small adjustment to the portfile needed.

Yes, I built from Portfile.

comment:5 Changed 20 months ago by wbl (Watson Ladd)

Sorry, i meant building without benefit of macports.

My guess is I need to tweak and tell the linker where we put fltk.

comment:6 Changed 19 months ago by wbl (Watson Ladd)

I've been able to reproduce finally. Will work more on this this weekend: I expect once I get into it it should be a few small tweeks to the link command.

Note: See TracTickets for help on using tickets.