Link failed with SVN 1917:

libtool: link: g++ -Wall -I sql -I /Users/paulrockwell/Documents/apl/trunk -O2 
-Wno-narrowing -I/opt/local/include -std=gnu++17 -I 
/Users/paulrockwell/Documents/apl/trunk -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-QR_factorization_GSL.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_MX.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 apl-Regexp.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  -L/usr/local/lib -lsqlite3 -L/opt/local/lib -lgsl -lgslcblas 
-lpcre2-32 -lz -lpng -lfftw3 -lX11-xcb -lxcb -lX11 -ldl -lm -lncurses -lcurses 
-lpthread
ld: warning: -bind_at_load is deprecated on macOS
Undefined symbols for architecture arm64:
  "Quad_RVAL::eval_B(Value_P) const", referenced from:
      vtable for Quad_RVAL in apl-Quad_RVAL.o
ld: symbol(s) not found for architecture arm64
clang++: error: linker command failed with exit code 1 (use -v to see 
invocation)
make[3]: *** [apl] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

(on macOS, the ld warning about -bind_at_load is normal)

This looks to be an issue where glibc is not available (HAVE_LIBC is not 
defined). Looking at the code, there's no function definition
for Quad_RVAL::eval_B() in src/Qual_RVAL.cc <http://qual_rval.cc/> if HAVE_LIBC 
is not defined (#else at line 657).

This diff looks to have fixed it for me for macOS. I get a clean compilation 
and link, and ⎕RVAL generates a syntax error if I try to use it
along with the explanation that this is not available on my platform). 

Index: src/Quad_RVAL.cc
===================================================================
--- src/Quad_RVAL.cc    (revision 1917)
+++ src/Quad_RVAL.cc    (working copy)
@@ -663,6 +663,17 @@
    N = 8;
 }
 //----------------------------------------------------------------------------
+Token
+Quad_RVAL::eval_B(Value_P B) const
+{
+     MORE_ERROR() <<
+"⎕RVAL is only available on platforms that have glibc.\n"
+"Your platform is lacking initstate_r() (and probably others).";
+
+   SYNTAX_ERROR;
+   return Token();
+}
+//----------------------------------------------------------------------------
 Value_P
 Quad_RVAL::do_eval_B(const Value & B, int depth) const
 {


- paul

> On Nov 28, 2025, at 1:09 PM, Dr. Jürgen Sauermann <mail@jürgen-sauermann.de> 
> wrote:
> 
> Hi,
> 
> thanks. Next try: SVN  1917.
> 
> Best Regards,
> Jürgen
> 
> 
> On 11/28/25 18:24, Paul Rockwell wrote:
>> Still issues with SVN1915 
>> 
>> g++ -DHAVE_CONFIG_H -I. -I..    -Wall  -I sql -I 
>> /Users/me/Documents/apl/trunk          -O2 -Wno-narrowing 
>> -I/opt/local/include -std=gnu++17 -I /Users/me/Documents/apl/trunk -MT 
>> apl-Quad_RVAL.o -MD -MP -MF .deps/apl-Quad_RVAL.Tpo -c -o apl-Quad_RVAL.o 
>> `test -f 'Quad_RVAL.cc' || echo './'`Quad_RVAL.cc
>> mv -f .deps/apl-Quad_MX.Tpo .deps/apl-Quad_MX.Po
>> Quad_RVAL.cc:683:12: error: redefinition of 'eval_XB'
>>   683 | Quad_RVAL::eval_XB(Value_P A, Value_P B) const
>>       |            ^
>> ./Quad_RVAL.hh:60:18: note: previous definition is here
>>    60 |    virtual Token eval_XB(Value_P X, Value_P B) const
>>       |                  ^
>> 1 error generated.
>> 
>> Compiler info:
>> 
>> $ c++ --version
>> Apple clang version 17.0.0 (clang-1700.4.4.1)
>> Target: arm64-apple-darwin25.1.0
>> Thread model: posix
>> 
>> 
>>> On Nov 28, 2025, at 10:39 AM, Dr. Jürgen Sauermann via Bugs and suggestions 
>>> for GNU APL <[email protected]> <mailto:[email protected]> wrote:
>>> 
>>> Hi,
>>> 
>>> thanks. Hopefully all fixed in SVN 1915.
>>> 
>>> Best Regards,
>>> Jürgen
>>> 
>> 
> 

Reply via email to