The 52 missing symbols are listed in the error message, but it looks like 
they're from fox. Reduce wants to build and use its own embedded copy of fox, 
but I had the MacPorts fox port installed. It looks like the -L flags are in 
the wrong order when reducebootstrap was being linked, putting -L/opt/local/lib 
before the -L flag for the directory where the embedded copy of fox is, which 
caused -lFOX-1.6 to refer to the fox port's library and not the embedded copy, 
and I guess they're different enough versions that they're not compatible. 
Deactivating the fox port before building reduce removed that problem. If you 
can fix the order of the -L flags, that would be good; otherwise, include 
"PortGroup conflicts_build 1.0" and add "conflicts_build fox".

Now that I can install it, my "port contents" output looks like what I'd 
expect; here's the first 20 lines:

Port reduce contains:
  /Applications/MacPorts/reduce/bootstrapreduce.app
  /Applications/MacPorts/reduce/csl.app
  /Applications/MacPorts/reduce/reduce.app
  /opt/local/bin/bootstrapreduce
  /opt/local/bin/csl
  /opt/local/bin/redcsl
  /opt/local/bin/redpsl
  /opt/local/bin/rfcsl
  /opt/local/bin/rfpsl
  /opt/local/libexec/reduce/README
  /opt/local/libexec/reduce/csl/bootstrapreduce.app/Contents/Info.plist
  
/opt/local/libexec/reduce/csl/bootstrapreduce.app/Contents/MacOS/bootstrapreduce
  
/opt/local/libexec/reduce/csl/bootstrapreduce.app/Contents/MacOS/bootstrapreduce.img
  
/opt/local/libexec/reduce/csl/bootstrapreduce.app/Contents/MacOS/reduce.doc/BINARY-LICENSE.txt
  
/opt/local/libexec/reduce/csl/bootstrapreduce.app/Contents/MacOS/reduce.doc/BSD-LICENSE.txt
  
/opt/local/libexec/reduce/csl/bootstrapreduce.app/Contents/MacOS/reduce.doc/LGPL-2.1.txt
  
/opt/local/libexec/reduce/csl/bootstrapreduce.app/Contents/MacOS/reduce.doc/abstract.tex
  
/opt/local/libexec/reduce/csl/bootstrapreduce.app/Contents/MacOS/reduce.doc/acknowl.tex
  
/opt/local/libexec/reduce/csl/bootstrapreduce.app/Contents/MacOS/reduce.doc/appenda.tex

So getting back to your gnuplot question, since I know nothing about reduce, 
what do I do to get it try to launch gnuplot?

\r




On Sep 23, 2018, at 21:23, Mark Brethen wrote:

> I built it on Sierra. What’s the missing symbol?
> 
> 
> Mark Brethen
> mark.bret...@gmail.com
> 
> 
> 
>> On Sep 23, 2018, at 8:16 PM, Ryan Schmidt wrote:
>> 
>> It doesn't build for me...
>> 
>> 
>> Undefined symbols for architecture x86_64:
>> "directoryp(char*, char const*, unsigned long)", referenced from:
>>     Ldirectoryp(long, long) in csl-print.o
>> "fwin_menus(char**, char**, void (*)())", referenced from:
>>     cslstart(int, char const**, int (*)(int)) in csl-csl.o
>> "delete_file(char*, char const*, unsigned long)", referenced from:
>>     Lopen(long, long, long) in csl-print.o
>>     Ldelete_file(long, long) in csl-print.o
>> "file_exists(char*, char const*, unsigned long, char*)", referenced from:
>>     Lfiledate(long, long) in csl-print.o
>>     CSLtmpnam(char const*, unsigned long) in csl-sysfwin.o
>> "file_length(char*, char const*, unsigned long)", referenced from:
>>     Lfile_length(long, long) in csl-print.o
>> "rename_file(char*, char const*, unsigned long, char*, char const*, unsigned 
>> long)", referenced from:
>>     Lopen(long, long, long) in csl-print.o
>>     Lrename_file(long, long, long) in csl-print.o
>> "fwin_getchar()", referenced from:
>>     wimpget(char*) in csl-sysfwin.o
>> "fwin_putchar(int)", referenced from:
>>     char_to_terminal(int, long) in csl-print.o
>> "fwin_restore()", referenced from:
>>     cslstart(int, char const**, int (*)(int)) in csl-csl.o
>> "fwin_startup(int, char const**, int (*)(int, char const**))", referenced 
>> from:
>>     _main in csl-csl.o
>> "get_truename(char*, char const*, unsigned long)", referenced from:
>>     Ltruename(long, long) in csl-print.o
>> "file_readable(char*, char const*, unsigned long)", referenced from:
>>     Lfile_readable(long, long) in csl-print.o
>> "fwin_showmath(char const*)", referenced from:
>>     Lmath_display(long, long) in csl-print.o
>> "truncate_file(__sFILE*, long)", referenced from:
>>     finished_with(int) in csl-preserve.o
>> "file_writeable(char*, char const*, unsigned long)", referenced from:
>>     Lfile_writeable(long, long) in csl-print.o
>> "scan_directory(char const*, void (*)(char const*, int, long))", referenced 
>> from:
>>     list_one_library(long, bool) in csl-preserve.o
>>     Llibrary_members(long, long) in csl-preserve.o
>> "delete_wildcard(char*, char const*, unsigned long)", referenced from:
>>     Ldelete_wildcard(long, long) in csl-print.o
>> "fwin_report_mid(char const*)", referenced from:
>>     Lwindow_heading2(long, long, long) in csl-print.o
>> "fwin_set_lookup(char* (*)(char*, int))", referenced from:
>>     _main in csl-csl.o
>> "fwin_set_prompt(char const*)", referenced from:
>>     interrupted(long) in csl-csl.o
>>     Lsetpchar(long, long) in csl-fasl.o
>> "fwin_windowmode()", referenced from:
>>     set_up_variables(int) in csl-restart.o
>>     interrupted(long) in csl-csl.o
>> "change_directory(char*, char const*, unsigned long)", referenced from:
>>     Lchange_directory(long, long) in csl-print.o
>> "create_directory(char*, char const*, unsigned long)", referenced from:
>>     Lcreate_directory(long, long) in csl-print.o
>> "fwin_report_left(char const*)", referenced from:
>>     Lwindow_heading2(long, long, long) in csl-print.o
>>     report_time(int, int) in csl-sysfwin.o
>> "fwin_report_right(char const*)", referenced from:
>>     Lwindow_heading2(long, long, long) in csl-print.o
>>     report_space(unsigned long long, double, double) in csl-sysfwin.o
>> "process_file_name(char*, char const*, unsigned long)", referenced from:
>>     open_pds(char const*, int) in csl-preserve.o
>> "fwin_ensure_screen()", referenced from:
>>     ensure_screen() in csl-print.o
>>     write_action_terminal(int, long) in csl-print.o
>>     prin_to_terminal(long) in csl-print.o
>>     prin_to_stdout(long) in csl-print.o
>>     prin_to_error(long) in csl-print.o
>>     prin_to_trace(long) in csl-print.o
>>     prinhex_to_trace(char const*, long) in csl-print.o
>>     ...
>> "fwin_set_help_file(char const*, char const*)", referenced from:
>>     Lset_help_file(long, long, long) in csl-fasl.o
>> "get_home_directory(char*, unsigned long)", referenced from:
>>     Luser_homedir_pathname(long) in csl-print.o
>> "fwin_acknowledge_tick()", referenced from:
>>     reclaim(long, char const*, int, unsigned long) in csl-cslgc.o
>> "fwin_refresh_switches(char**, char**)", referenced from:
>>     review_switch_settings() in csl-restart.o
>> "get_current_directory(char*, unsigned long)", referenced from:
>>     Lget_current_directory(long) in csl-print.o
>>     cslstart(int, char const**, int (*)(int)) in csl-csl.o
>> "list_directory_members(char*, char const*, unsigned long, void (*)(char 
>> const*, int, long))", referenced from:
>>     Llist_directory(long, long) in csl-print.o
>> "fwin_callback_to_interrupt(int (*)(int))", referenced from:
>>     cslstart(int, char const**, int (*)(int)) in csl-csl.o
>> "Cmkdir(char const*)", referenced from:
>>     open_pds(char const*, int) in csl-preserve.o
>>     unpending(directory*) in csl-preserve.o
>> "my_getenv(char const*)", referenced from:
>>     Lgetenv(long, long) in csl-cslread.o
>> "my_system(char const*)", referenced from:
>>     Lsystem(long, long) in csl-cslread.o
>> "open_file(char*, char const*, unsigned long, char const*, __sFILE*)", 
>> referenced from:
>>     Lopen(long, long, long) in csl-print.o
>>     Lopen_url(long, long) in csl-print.o
>>     Lbinary_open_output(long, long) in csl-print.o
>>     Lbinary_open_input(long, long) in csl-print.o
>>     Lspool(long, long) in csl-cslread.o
>>     cslstart(int, char const**, int (*)(int)) in csl-csl.o
>>     cslaction() in csl-csl.o
>>     ...
>> "FX::text", referenced from:
>>     Lmath_display(long, long) in csl-print.o
>> "_about_box_description", referenced from:
>>     set_up_variables(int) in csl-restart.o
>>     fwin_main(int, char const**) in csl-csl.o
>> "_about_box_rights_1", referenced from:
>>     set_up_variables(int) in csl-restart.o
>> "_about_box_rights_2", referenced from:
>>     set_up_variables(int) in csl-restart.o
>> "_about_box_title", referenced from:
>>     set_up_variables(int) in csl-restart.o
>>     fwin_main(int, char const**) in csl-csl.o
>> "_fullProgramName", referenced from:
>>     set_up_variables(int) in csl-restart.o
>> "_fwin_linelength", referenced from:
>>     write_action_terminal(int, long) in csl-print.o
>>     write_action_spool(int, long) in csl-print.o
>> "_fwin_pause_at_end", referenced from:
>>     cslstart(int, char const**, int (*)(int)) in csl-csl.o
>> "_fwin_use_xft", referenced from:
>>     cslstart(int, char const**, int (*)(int)) in csl-csl.o
>> "_programDir", referenced from:
>>     find_image_directory(int, char const**) in csl-sysfwin.o
>>     find_gnuplot(char*) in csl-sysfwin.o
>> "_programName", referenced from:
>>     set_up_variables(int) in csl-restart.o
>>     find_image_directory(int, char const**) in csl-sysfwin.o
>> "_scan_leafstart", referenced from:
>>     make_dir_list(char const*, int, long) in csl-print.o
>> "_showmathInitialised", referenced from:
>>     set_up_variables(int) in csl-restart.o
>> "_texmacs_mode", referenced from:
>>     set_up_variables(int) in csl-restart.o
>>     setup(int, double) in csl-restart.o
>> ld: symbol(s) not found for architecture x86_64
>> clang: error: linker command failed with exit code 1 (use -v to see 
>> invocation)
>> gmake[3]: *** [Makefile:4796: csl] Error 1
>> make[2]: *** [all] Error 2
>> 
>> 
>> But I guess the options are:
>> 
>> a) Figure out where in the code it calls the gnuplot executable, and change 
>> it to be the absolute path, so that the $PATH variable is not needed. I 
>> found lines such as these:
>> 
>> ./packages/plot/gnuintfc.red:   plotcommand!* := find!-gnuplot();
>> ./packages/plot/gnuintfc.red:     plotcommand!* := find!-gnuplot();
>> ./packages/plot/gnuintfc.red:   plotcommand!* := bldmsg("gnuplot 
>> %w",plotcmds!*);
>> ./packages/plot/gnuintfc.red:  plotcommand!* := find!-gnuplot();
>> 
>> Maybe using the full "/opt/local/bin/gnuplot" on these lines is the answer.
>> 
>> b) Rename or move the real executable and in its place put a wrapper script 
>> that sets $PATH and then calls the original executable.
>> 
>> 
>> 
> 

Reply via email to