Unfortunately, I looked everywhere for the ltmain.sh file, and nothing was
found.
Apparently, Mac OS does not use this particular file.
looking at the ltmain.sh inside the apl/ folder, I saw those lines:
case $host in
*-*-darwin*)
# Don't allow lazy linking, it breaks C++ global constructors
# But is supposedly fixed on 10.4 or later (yay!).
if test CXX = "$tagname"; then
case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
10.[0123])
func_append compile_command " $wl-bind_at_load"
func_append finalize_command " $wl-bind_at_load"
;;
esac
Could that be the culprit?
> On Oct 3, 2023, at 09:18, Dr. Jürgen Sauermann
> <[email protected]> wrote:
>
> Hi Louis,
>
> thanks for reporting this. I believe that I managed to fix all compiler
> warnings.
>
> The linker warning:
>
> ld: warning: -bind_at_load is deprecated on macOS
>
> seems to be caused by different libtool versions. Maybe running libtoolize
> on your box in the top-level GNU APL directory fixes it, otherwise copy your
> local /usr/share/libtool/build-aux/ltmain.sh to the top-level GNU APL
> directory.
> After that, re-run ./configure.
>
> You may also want to email your /usr/share/libtool/build-aux/ltmain.sh, I
> might
> then be able to fix the one that is shipped with GNU APL.
>
> Best Regards,
> Jürgen
>
>
> On 10/2/23 18:18, Louis Chretien via Bugs and suggestions for GNU APL wrote:
>> A bunch of warnings are present in the build 1735 of GNU APL on Mac OS:
>>
>> /bin/sh ../../libtool --tag=CXX --mode=link g++ -I ./.. -g -O2
>> -DAP_NUM=100 -I/opt/local/include -I /Users/admin/Subversion/apl -o AP100
>> AP100-AP100.o AP100-APmain.o ../AP100-Backtrace.o ../AP100-Svar_DB.o
>> ../AP100-Svar_record.o -ldl -lm -lncurses -lcurses -lpthread
>> libtool: link: g++ -I ./.. -g -O2 -DAP_NUM=100 -I/opt/local/include -I
>> /Users/admin/Subversion/apl -o AP100 AP100-AP100.o AP100-APmain.o
>> ../AP100-Backtrace.o ../AP100-Svar_DB.o ../AP100-Svar_record.o
>> -Wl,-bind_at_load -ldl -lm -lncurses -lcurses -lpthread
>> ld: warning: -bind_at_load is deprecated on macOS
>>
>> /bin/sh ../../libtool --tag=CXX --mode=link g++ -I ./.. -g -O2
>> -I/opt/local/include -I /Users/admin/Subversion/apl -o APserver
>> APserver-APserver.o APserver-Svar_DB_server.o ../APserver-Svar_record.o
>> -ldl -lm -lncurses -lcurses -lpthread
>> libtool: link: g++ -I ./.. -g -O2 -I/opt/local/include -I
>> /Users/admin/Subversion/apl -o APserver APserver-APserver.o
>> APserver-Svar_DB_server.o ../APserver-Svar_record.o -Wl,-bind_at_load -ldl
>> -lm -lncurses -lcurses -lpthread
>> ld: warning: -bind_at_load is deprecated on macOS
>>
>> g++ -DHAVE_CONFIG_H -I. -I.. -Wall -I sql -I /Users/admin/Subversion/apl
>> -I/opt/local/include -I /Users/admin/Subversion/apl -MT
>> apl-Archive.o -MD -MP -MF .deps/apl-Archive.Tpo -c -o apl-Archive.o `test -f
>> 'Archive.cc <http://archive.cc/>' || echo './'`Archive.cc
>> <http://archive.cc/>
>> In file included from Archive.cc:32 <http://archive.cc:32/>:
>> ./Archive.hh:44:1: warning: struct 'Token_loc' was previously declared as a
>> class; this is valid, but may result in linker errors under the Microsoft
>> C++ ABI [-Wmismatched-tags]
>> struct Token_loc;
>> ^
>> ./Token.hh:435:7: note: previous use is here
>> class Token_loc
>> ^
>> ./Archive.hh:44:1: note: did you mean class here?
>> struct Token_loc;
>> ^~~~~~
>> class
>> 1 warning generated.
>>
>> g++ -DHAVE_CONFIG_H -I. -I.. -Wall -I sql -I /Users/admin/Subversion/apl
>> -I/opt/local/include -I /Users/admin/Subversion/apl -MT
>> apl-Executable.o -MD -MP -MF .deps/apl-Executable.Tpo -c -o apl-Executable.o
>> `test -f 'Executable.cc <http://executable.cc/>' || echo './'`Executable.cc
>> <http://executable.cc/>
>> Executable.cc:850 <http://executable.cc:850/>:11: warning: result of
>> comparison of constant 2 with expression of type 'Function_PC' is always
>> true [-Wtautological-constant-out-of-range-compare]
>> if (pc < 2) return Function_PC_0;
>> ~~ ^ ~
>> 1 warning generated.
>>
>> g++ -DHAVE_CONFIG_H -I. -I.. -Wall -I sql -I /Users/admin/Subversion/apl
>> -I/opt/local/include -I /Users/admin/Subversion/apl -MT
>> apl-LineInput.o -MD -MP -MF .deps/apl-LineInput.Tpo -c -o apl-LineInput.o
>> `test -f 'LineInput.cc <http://lineinput.cc/>' || echo './'`LineInput.cc
>> <http://lineinput.cc/>
>> LineInput.cc:174 <http://lineinput.cc:174/>:5: warning: variable 'count' set
>> but not used [-Wunused-but-set-variable]
>> int count = 0;
>> ^
>> 1 warning generated.
>>
>> g++ -DHAVE_CONFIG_H -I. -I.. -Wall -I sql -I /Users/admin/Subversion/apl
>> -I/opt/local/include -I /Users/admin/Subversion/apl -MT
>> apl-Parser.o -MD -MP -MF .deps/apl-Parser.Tpo -c -o apl-Parser.o `test -f
>> 'Parser.cc <http://parser.cc/>' || echo './'`Parser.cc <http://parser.cc/>
>> Parser.cc:683 <http://parser.cc:683/>:29: warning: use of logical '&&' with
>> constant operand [-Wconstant-logical-operand]
>> if (!(DO_FT_LITERAL_AXIS && DO_FT_LITERAL_INDEX)) return false;
>> ^ ~~~~~~~~~~~~~~~~~~~
>> Parser.cc:683 <http://parser.cc:683/>:29: note: use '&' for a bitwise
>> operation
>> if (!(DO_FT_LITERAL_AXIS && DO_FT_LITERAL_INDEX)) return false;
>> ^~
>> &
>> Parser.cc:683 <http://parser.cc:683/>:29: note: remove constant to silence
>> this warning
>> if (!(DO_FT_LITERAL_AXIS && DO_FT_LITERAL_INDEX)) return false;
>> ~^~~~~~~~~~~~~~~~~~~~~~
>> 1 warning generated.
>>
>> g++ -DHAVE_CONFIG_H -I. -I.. -Wall -I sql -I /Users/admin/Subversion/apl
>> -I/opt/local/include -I /Users/admin/Subversion/apl -MT
>> apl-Quad_XML.o -MD -MP -MF .deps/apl-Quad_XML.Tpo -c -o apl-Quad_XML.o `test
>> -f 'Quad_XML.cc <http://quad_xml.cc/>' || echo './'`Quad_XML.cc
>> <http://quad_xml.cc/>
>> Quad_XML.cc:550 <http://quad_xml.cc:550/>:11: warning: variable 'count' set
>> but not used [-Wunused-but-set-variable]
>> ShapeItem count = 0;
>> ^
>> 1 warning generated.
>>
>> g++ -DHAVE_CONFIG_H -I. -I.. -Wall -I sql -I /Users/admin/Subversion/apl
>> -I/opt/local/include -I /Users/admin/Subversion/apl -MT
>> apl-Workspace.o -MD -MP -MF .deps/apl-Workspace.Tpo -c -o apl-Workspace.o
>> `test -f 'Workspace.cc <http://workspace.cc/>' || echo './'`Workspace.cc
>> <http://workspace.cc/>
>> In file included from Workspace.cc:32 <http://workspace.cc:32/>:
>> ./Archive.hh:44:1: warning: struct 'Token_loc' was previously declared as a
>> class; this is valid, but may result in linker errors under the Microsoft
>> C++ ABI [-Wmismatched-tags]
>> struct Token_loc;
>> ^
>> ./Token.hh:435:7: note: previous use is here
>> class Token_loc
>> ^
>> ./Archive.hh:44:1: note: did you mean class here?
>> struct Token_loc;
>> ^~~~~~
>> class
>> 1 warning generated.
>>
>> /bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -I sql -I
>> /Users/admin/Subversion/apl -I/opt/local/include -I
>> /Users/admin/Subversion/apl -export-dynamic -lsqlite3 -o apl apl-main.o
>> apl-Plot_xcb.o apl-Archive.o apl-Assert.o apl-Avec.o apl-Backtrace.o
>> apl-Bif_F12_COMMA.o apl-Bif_F12_DOMINO.o apl-Bif_F12_INDEX_OF.o
>> apl-Bif_F12_INTERVAL_INDEX.o apl-Bif_F12_FORMAT.o
>> apl-Bif_F12_PARTITION_PICK.o apl-Bif_F12_SORT.o apl-Bif_F12_TAKE_DROP.o
>> apl-Bif_OPER1_COMMUTE.o apl-Bif_OPER1_EACH.o apl-Bif_OPER2_POWER.o
>> apl-Bif_OPER2_INNER.o apl-Bif_OPER2_OUTER.o apl-Bif_OPER2_RANK.o
>> apl-Bif_OPER1_REDUCE.o apl-Bif_OPER1_SCAN.o apl-CDR.o apl-Cell.o apl-Doxy.o
>> apl-CharCell.o apl-Command.o apl-Common.o apl-ComplexCell.o
>> apl-DerivedFunction.o apl-DiffOut.o apl-DynamicObject.o apl-Error.o
>> apl-Executable.o apl-FloatCell.o apl-Function.o apl-Id.o apl-IndexExpr.o
>> apl-IndexIterator.o apl-InputFile.o apl-IntCell.o apl-IO_Files.o
>> apl-LApack.o apl-LibPaths.o apl-LineInput.o apl-Logging.o apl-LvalCell.o
>> apl-Malloc_hooks.o apl-Nabla.o apl-Macro.o apl-Missing_Libraries.o
>> apl-NamedObject.o apl-NativeFunction.o apl-NumericCell.o apl-Output.o
>> apl-Parallel.o apl-Parser.o apl-Performance.o apl-PointerCell.o apl-Prefix.o
>> apl-Plot_line_properties.o apl-Plot_data.o apl-Plot_window_properties.o
>> apl-PrimitiveFunction.o apl-PrintBuffer.o apl-QuadFunction.o
>> apl-ProcessorID.o apl-Quad_CR.o apl-Quad_DLX.o apl-Quad_FFT.o apl-Quad_FIO.o
>> apl-Quad_FX.o apl-Quad_GTK.o apl-Quad_JSON.o apl-Quad_MAP.o apl-Quad_PLOT.o
>> apl-Quad_PNG.o apl-Quad_RE.o apl-Quad_RL.o apl-Quad_RVAL.o apl-Quad_SQL.o
>> apl-Quad_SVx.o apl-Quad_TF.o apl-Quad_WA.o apl-Quad_XML.o apl-RealCell.o
>> apl-sbrk.o apl-Shape.o apl-ScalarFunction.o apl-Security.o
>> apl-StateIndicator.o apl-Svar_DB.o apl-Svar_record.o apl-Symbol.o
>> apl-SymbolTable.o apl-SystemVariable.o apl-TabExpansion.o
>> apl-Thread_context.o apl-Token.o apl-Tokenizer.o apl-UCS_string.o
>> apl-UCS_string_vector.o apl-UserFunction.o apl-UserFunction_header.o
>> apl-UserPreferences.o apl-UTF8_string.o apl-Value.o apl-ValueHistory.o
>> apl-Workspace.o apl-static_Objects.o sql/apl-SqliteArgListBuilder.o
>> sql/apl-SqliteConnection.o sql/apl-SqliteResultValue.o
>> sql/apl-SqliteProvider.o sql/apl-Connection.o -ldl -lm -lncurses -lcurses
>> -lpthread -ldl -lm -lncurses -lcurses -lpthread
>> libtool: link: g++ -Wall -I sql -I /Users/admin/Subversion/apl
>> -I/opt/local/include -I /Users/admin/Subversion/apl -o apl apl-main.o
>> apl-Plot_xcb.o apl-Archive.o apl-Assert.o apl-Avec.o apl-Backtrace.o
>> apl-Bif_F12_COMMA.o apl-Bif_F12_DOMINO.o apl-Bif_F12_INDEX_OF.o
>> apl-Bif_F12_INTERVAL_INDEX.o apl-Bif_F12_FORMAT.o
>> apl-Bif_F12_PARTITION_PICK.o apl-Bif_F12_SORT.o apl-Bif_F12_TAKE_DROP.o
>> apl-Bif_OPER1_COMMUTE.o apl-Bif_OPER1_EACH.o apl-Bif_OPER2_POWER.o
>> apl-Bif_OPER2_INNER.o apl-Bif_OPER2_OUTER.o apl-Bif_OPER2_RANK.o
>> apl-Bif_OPER1_REDUCE.o apl-Bif_OPER1_SCAN.o apl-CDR.o apl-Cell.o apl-Doxy.o
>> apl-CharCell.o apl-Command.o apl-Common.o apl-ComplexCell.o
>> apl-DerivedFunction.o apl-DiffOut.o apl-DynamicObject.o apl-Error.o
>> apl-Executable.o apl-FloatCell.o apl-Function.o apl-Id.o apl-IndexExpr.o
>> apl-IndexIterator.o apl-InputFile.o apl-IntCell.o apl-IO_Files.o
>> apl-LApack.o apl-LibPaths.o apl-LineInput.o apl-Logging.o apl-LvalCell.o
>> apl-Malloc_hooks.o apl-Nabla.o apl-Macro.o apl-Missing_Libraries.o
>> apl-NamedObject.o apl-NativeFunction.o apl-NumericCell.o apl-Output.o
>> apl-Parallel.o apl-Parser.o apl-Performance.o apl-PointerCell.o apl-Prefix.o
>> apl-Plot_line_properties.o apl-Plot_data.o apl-Plot_window_properties.o
>> apl-PrimitiveFunction.o apl-PrintBuffer.o apl-QuadFunction.o
>> apl-ProcessorID.o apl-Quad_CR.o apl-Quad_DLX.o apl-Quad_FFT.o apl-Quad_FIO.o
>> apl-Quad_FX.o apl-Quad_GTK.o apl-Quad_JSON.o apl-Quad_MAP.o apl-Quad_PLOT.o
>> apl-Quad_PNG.o apl-Quad_RE.o apl-Quad_RL.o apl-Quad_RVAL.o apl-Quad_SQL.o
>> apl-Quad_SVx.o apl-Quad_TF.o apl-Quad_WA.o apl-Quad_XML.o apl-RealCell.o
>> apl-sbrk.o apl-Shape.o apl-ScalarFunction.o apl-Security.o
>> apl-StateIndicator.o apl-Svar_DB.o apl-Svar_record.o apl-Symbol.o
>> apl-SymbolTable.o apl-SystemVariable.o apl-TabExpansion.o
>> apl-Thread_context.o apl-Token.o apl-Tokenizer.o apl-UCS_string.o
>> apl-UCS_string_vector.o apl-UserFunction.o apl-UserFunction_header.o
>> apl-UserPreferences.o apl-UTF8_string.o apl-Value.o apl-ValueHistory.o
>> apl-Workspace.o apl-static_Objects.o sql/apl-SqliteArgListBuilder.o
>> sql/apl-SqliteConnection.o sql/apl-SqliteResultValue.o
>> sql/apl-SqliteProvider.o sql/apl-Connection.o -Wl,-bind_at_load -lsqlite3
>> -ldl -lm -lncurses -lcurses -lpthread
>> ld: warning: -bind_at_load is deprecated on macOS
>>
>> /bin/sh ../libtool --tag=CXX --mode=link g++ -I/opt/local/include -I
>> /Users/admin/Subversion/apl -o APL_keyboard APL_keyboard.o -ldl -lm
>> -lncurses -lcurses -lpthread
>> libtool: link: g++ -I/opt/local/include -I /Users/admin/Subversion/apl -o
>> APL_keyboard APL_keyboard.o -Wl,-bind_at_load -ldl -lm -lncurses -lcurses
>> -lpthread
>> ld: warning: -bind_at_load is deprecated on macOS
>>
>> /bin/sh ../libtool --tag=CXX --mode=link g++ -I/opt/local/include -I
>> /Users/admin/Subversion/apl -o APL_keyboard_learn APL_keyboard_learn.o
>> -ldl -lm -lncurses -lcurses -lpthread
>> libtool: link: g++ -I/opt/local/include -I /Users/admin/Subversion/apl -o
>> APL_keyboard_learn APL_keyboard_learn.o -Wl,-bind_at_load -ldl -lm
>> -lncurses -lcurses -lpthread
>> ld: warning: -bind_at_load is deprecated on macOS
>>
>> /bin/sh ../libtool --tag=CXX --mode=link g++ -I/opt/local/include -I
>> /Users/admin/Subversion/apl -o APL_keyboard_show APL_keyboard_show.o -ldl
>> -lm -lncurses -lcurses -lpthread
>> libtool: link: g++ -I/opt/local/include -I /Users/admin/Subversion/apl -o
>> APL_keyboard_show APL_keyboard_show.o -Wl,-bind_at_load -ldl -lm -lncurses
>> -lcurses -lpthread
>> ld: warning: -bind_at_load is deprecated on macOS
>>
>> /bin/sh ../libtool --tag=CXX --mode=link g++ -I/opt/local/include -I
>> /Users/admin/Subversion/apl -o apl2html apl2html.o -ldl -lm -lncurses
>> -lcurses -lpthread
>> libtool: link: g++ -I/opt/local/include -I /Users/admin/Subversion/apl -o
>> apl2html apl2html.o -Wl,-bind_at_load -ldl -lm -lncurses -lcurses -lpthread
>> ld: warning: -bind_at_load is deprecated on macOS
>>
>> /bin/sh ../libtool --tag=CXX --mode=link g++ -I/opt/local/include -I
>> /Users/admin/Subversion/apl -o lines lines.o -ldl -lm -lncurses -lcurses
>> -lpthread
>> libtool: link: g++ -I/opt/local/include -I /Users/admin/Subversion/apl -o
>> lines lines.o -Wl,-bind_at_load -ldl -lm -lncurses -lcurses -lpthread
>> ld: warning: -bind_at_load is deprecated on macOS
>>
>> /bin/sh ../libtool --tag=CXX --mode=link g++ -I/opt/local/include -I
>> /Users/admin/Subversion/apl -o ncurses_emul ncurses_emul.o -ldl -lm
>> -lncurses -lcurses -lpthread
>> libtool: link: g++ -I/opt/local/include -I /Users/admin/Subversion/apl -o
>> ncurses_emul ncurses_emul.o -Wl,-bind_at_load -ldl -lm -lncurses -lcurses
>> -lpthread
>> ld: warning: -bind_at_load is deprecated on macOS
>>
>> depbase=`echo phrase_gen.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
>> g++ -DHAVE_CONFIG_H -I. -I.. -I/opt/local/include -I
>> /Users/admin/Subversion/apl -MT phrase_gen.o -MD -MP -MF $depbase.Tpo -c -o
>> phrase_gen.o phrase_gen.cc <http://phrase_gen.cc/> &&\
>> mv -f $depbase.Tpo $depbase.Po
>> phrase_gen.cc:52 <http://phrase_gen.cc:52/>:29: warning: 'sprintf' is
>> deprecated: This function is provided for compatibility reasons only. Due
>> to security concerns inherent in the design of sprintf(3), it is
>> highly recommended that you use snprintf(3) instead.
>> [-Wdeprecated-declarations]
>> loop(l, len) b += sprintf(b, "_%s", names[l]);
>> ^
>> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/stdio.h:180:1:
>> note: 'sprintf' has been explicitly marked deprecated here
>> __deprecated_msg("This function is provided for compatibility reasons only.
>> Due to security concerns inherent in the design of sprintf(3), it is highly
>> recommended that you use snprintf(3) instead.")
>> ^
>> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:215:48:
>> note: expanded from macro '__deprecated_msg'
>> #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
>> ^
>> phrase_gen.cc:53 <http://phrase_gen.cc:53/>:9: warning: 'sprintf' is
>> deprecated: This function is provided for compatibility reasons only. Due
>> to security concerns inherent in the design of sprintf(3), it is highly
>> recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
>> sprintf(b, "[%d]", len);
>> ^
>> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/stdio.h:180:1:
>> note: 'sprintf' has been explicitly marked deprecated here
>> __deprecated_msg("This function is provided for compatibility reasons only.
>> Due to security concerns inherent in the design of sprintf(3), it is highly
>> recommended that you use snprintf(3) instead.")
>> ^
>> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:215:48:
>> note: expanded from macro '__deprecated_msg'
>> #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
>> ^
>> 2 warnings generated.
>>
>> /bin/sh ../libtool --tag=CXX --mode=link g++ -I/opt/local/include -I
>> /Users/admin/Subversion/apl -o phrase_gen phrase_gen.o -ldl -lm -lncurses
>> -lcurses -lpthread
>> libtool: link: g++ -I/opt/local/include -I /Users/admin/Subversion/apl -o
>> phrase_gen phrase_gen.o -Wl,-bind_at_load -ldl -lm -lncurses -lcurses
>> -lpthread
>> ld: warning: -bind_at_load is deprecated on macOS
>>
>> /bin/sh ../libtool --tag=CC --mode=link gcc -g -O2 -o sockconst
>> sockconst.o -ldl -lm -lncurses -lcurses -lpthread
>> libtool: link: gcc -g -O2 -o sockconst sockconst.o -ldl -lm -lncurses
>> -lcurses -lpthread
>> depbase=`echo TLV_server.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
>> gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT TLV_server.o -MD -MP -MF
>> $depbase.Tpo -c -o TLV_server.o TLV_server.c &&\
>> mv -f $depbase.Tpo $depbase.Po
>> /bin/sh ../libtool --tag=CC --mode=link gcc -g -O2 -o TLV_server
>> TLV_server.o -ldl -lm -lncurses -lcurses -lpthread
>> libtool: link: gcc -g -O2 -o TLV_server TLV_server.o -ldl -lm -lncurses
>> -lcurses -lpthread
>> Making all in websock
>> Making all in client
>> make[3]: Nothing to be done for `all'.
>> Making all in server
>> make[3]: Nothing to be done for `all'.
>> make[3]: Nothing to be done for `all-am'.
>> admin@MBP-15-Louis Subversion %
>>
>>
>>
>>
>>
>> ---
>> Louis Chrétien
>> [email protected] <mailto:[email protected]>
>>
>>
>>
>>
>
---
Louis Chrétien
[email protected]