I wasn't able to get by the error until I performed an autoreconf --install 
--force which rebuilt Makefile.in from your updated Makefile.am. I'm now 
getting past this particular issue issue, but encountering another one:

g++ -DHAVE_CONFIG_H -I. -I..    -Wall -O2  -I ./sql -I 
/Users/paulrockwell/Documents/apl/trunk          -O2 -Wno-narrowing 
-I/opt/local/include -std=gnu++17 -I /Users/paulrockwell/Documents/apl/trunk 
-MT apl-Plot_xcb.o -MD -MP -MF .deps/apl-Plot_xcb.Tpo -c -o apl-Plot_xcb.o 
`test -f 'Plot_xcb.cc' || echo './'`Plot_xcb.cc
In file included from Plot_xcb.cc:42:
./Quad_PLOT.hh:103:13: error: use of undeclared identifier 'sem_timedwait'
  103 |         if (sem_timedwait(sema, &deadline) == 0)   return PLOT_WAIT_OK;
      |             ^~~~~~~~~~~~~
Plot_xcb.cc:192:22: warning: variable length arrays in C++ are a Clang 
extension [-Wvla-cxx-extension]
  192 | xcb_char2b_t xcb_str[string_length + 10];
      |                      ^~~~~~~~~~~~~~~~~~
Plot_xcb.cc:192:22: note: initializer of 'string_length' is not a constant 
expression
Plot_xcb.cc:191:14: note: declared here
  191 | const size_t string_length = strlen(string);
      |              ^
Plot_xcb.cc:1315:27: warning: variable length arrays in C++ are a Clang 
extension [-Wvla-cxx-extension]
 1315 |          uint8_t scanline[3*width + 10];
      |                           ^~~~~~~~~~~~
Plot_xcb.cc:1315:29: note: initializer of 'width' is not a constant expression
 1315 |          uint8_t scanline[3*width + 10];
      |                             ^
Plot_xcb.cc:1228:20: note: declared here
 1228 | const unsigned int width  = geo_x + geo_w + geo_x;
      |                    ^
Plot_xcb.cc:1281:5: warning: variable 'file_bytes' set but not used 
[-Wunused-but-set-variable]
 1281 | int file_bytes = 0;
      |     ^
3 warnings and 1 error generated.
make[3]: *** [apl-Plot_xcb.o] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
paulrockwell@Upstairs trunk % 


I'm running configure with the following options:

./configure --without-gtk3 CXXFLAGS="-O2 -Wno-narrowing -I/opt/local/include 
-std=gnu++17" LDFLAGS="-L/opt/local/lib"

I have X11, gtk3, and and other open-source libraries used by GNU APL installed 
via MacPorts (an alternative to Homebrew). They reside in /opt/local/include 
and /opt/local/lib - so I needed to add them to the library and header search 
lists.

The SVN of APL that I have installed for my day-to-day use (SVN 2034) compiled 
fine without this use of undeclared identifier error. Just reverted back to SVN 
2034 and re-built to verify. 

A diff shows lots of changes in Plot_xcb.cc <http://plot_xcb.cc/> and 
Quad_Plot.hh - which I suspect are the reasons behing why this error is now 
appearing.

I've been able to work around this by adding --without-x to my configure 
command"

./configure --without-x --without-gtk3 CXXFLAGS="-O2 -Wno-narrowing 
-I/opt/local/include -std=gnu++17" LDFLAGS="-L/opt/local/lib"


Some additional research indicates that sem_timedwait does not exist on macOS.

- Paul


> On Aug 20, 2026, at 12:55 PM, Paul Rockwell <[email protected]> wrote:
> 
> SVN 2090 still doesn't work. Manually executing the statement that you 
> changed when using the macOS standard shell zsh:
> 
> % for so in .libs/*.so .libs/*.dylib ; do
> echo "$so"
> done
> zsh: no matches found: .libs/*.so
> 
> Running it in the Bourne shell works:
> 
> % sh
> sh-3.2$ for so in .libs/*.so .libs/*.dylib ; do
> > echo "$so"
> > done
> .libs/*.so
> .libs/libemacs.0.dylib
> .libs/libemacs.dylib
> sh-3.2$ 
> 
> Running this under Bash also fails but with a different issue:
> 
> bash
> bash-5.3$ for so in .libs/*.so .libs/*dylib ; do
> > echo "$$so"
> > done
> 59622so
> 59622so
> 59622so
> 
> The following does work under bash, and the Bourne sh, but not zsh:
> 
> % bash
> bash-5.3$ for so in .libs/*.so .libs/*dylib ; do echo "$so"; done
> .libs/*.so
> .libs/libemacs.0.dylib
> .libs/libemacs.dylib
> % exit
> % sh
> sh-3.2$ for so in .libs/*.so .libs/*dylib ; do echo "$so"; done
> .libs/*.so
> .libs/libemacs.0.dylib
> .libs/libemacs.dylib
> 
> 
>  - Paul
> 
> 
> 
> 
>> On Aug 20, 2026, at 12:17 PM, Dr. Jürgen Sauermann via Bugs and suggestions 
>> for GNU APL <[email protected]> wrote:
>> 
>> Hi Mike,
>> 
>> thanks for the follow-up. Same class of bug, just in a different
>> subdirectory this time: src/emacs_mode/Makefile.am's all-local step had
>> the identical .libs/*.so-only glob (used to copy the freshly built
>> libemacs next to the apl binary) -- on MacOS libtool builds libemacs.dylib
>> instead, so the glob was again left as a literal, non-existent filename,
>> and the failed 'test -f' aborted the build right there, again with no
>> error text of its own.
>> 
>> Fixed in SVN 2090 -- now globs both *.so and *.dylib in
>> src/emacs_mode/Makefile.am as well, and can no longer abort the build
>> either way. Please svn up and retry; let us know if anything else comes
>> up.
>> 
>> Best regards,
>> Jürgen
>> 
>> PS: This error was fixed with the help of Claude Code
>>     (https://savannah.gnu.org/projects/apl).
>> 
>> 
>> 
>> On 8/20/26 15:16, M.Hall wrote:
>>> Thank you!  It gets much farther along before the next error:
>>> ===
>>> libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I../.. 
>>> -Wno-deprecated-declarations -g -O2 -I 
>>> /Volumes/ARCHIVE/Language/APL/gnu-apl/SVN/trunk -MT VersionCommand.lo -MD 
>>> -MP -MF .deps/VersionCommand.Tpo -c VersionCommand.cc -o VersionCommand.o 
>>> >/dev/null 2>&1
>>> /bin/sh ../../libtool  --tag=CXX   --mode=link g++  
>>> -Wno-deprecated-declarations -g -O2 -I 
>>> /Volumes/ARCHIVE/Language/APL/gnu-apl/SVN/trunk -export-dynamic  -o 
>>> libemacs.la <http://libemacs.la/> -rpath /usr/local/lib/apl DefCommand.lo 
>>> emacs.lo FnCommand.lo FnTagCommand.lo FollowCommand.lo GetVarCommand.lo 
>>> HelpCommand.lo Listener.lo LockWrapper.lo network.lo NetworkConnection.lo 
>>> RunCommand.lo SicCommand.lo SiCommand.lo SendCommand.lo SystemFnCommand.lo 
>>> SystemVariableCommand.lo TcpListener.lo TempFileWrapper.lo TraceData.lo 
>>> UnixSocketListener.lo util.lo VariablesCommand.lo VersionCommand.lo  
>>> -lpcre2-32 -lpng -lz -lfftw3 -ldl -lm -lpthread 
>>> libtool: link: g++ -r -keep_private_externs -nostdlib -o 
>>> .libs/libemacs.0.dylib-master.o  .libs/DefCommand.o .libs/emacs.o 
>>> .libs/FnCommand.o .libs/FnTagCommand.o .libs/FollowCommand.o 
>>> .libs/GetVarCommand.o .libs/HelpCommand.o .libs/Listener.o 
>>> .libs/LockWrapper.o .libs/network.o .libs/NetworkConnection.o 
>>> .libs/RunCommand.o .libs/SicCommand.o .libs/SiCommand.o .libs/SendCommand.o 
>>> .libs/SystemFnCommand.o .libs/SystemVariableCommand.o .libs/TcpListener.o 
>>> .libs/TempFileWrapper.o .libs/TraceData.o .libs/UnixSocketListener.o 
>>> .libs/util.o .libs/VariablesCommand.o .libs/VersionCommand.o 
>>> libtool: link: g++ -dynamiclib -Wl,-undefined -Wl,dynamic_lookup -o 
>>> .libs/libemacs.0.dylib .libs/libemacs.0.dylib-master.o  
>>> /usr/local/lib/libpcre2-32.dylib /usr/local/lib/libpng16.dylib -lz 
>>> /usr/local/lib/libfftw3.a -ldl -lm -lpthread  -g -O2   -pthread 
>>> -install_name  /usr/local/lib/apl/libemacs.0.dylib -compatibility_version 1 
>>> -current_version 1.0
>>> libtool: link: (cd ".libs" && rm -f "libemacs.dylib" && ln -s 
>>> "libemacs.0.dylib" "libemacs.dylib")
>>> libtool: link: ar cr .libs/libemacs.a  DefCommand.o emacs.o FnCommand.o 
>>> FnTagCommand.o FollowCommand.o GetVarCommand.o HelpCommand.o Listener.o 
>>> LockWrapper.o network.o NetworkConnection.o RunCommand.o SicCommand.o 
>>> SiCommand.o SendCommand.o SystemFnCommand.o SystemVariableCommand.o 
>>> TcpListener.o TempFileWrapper.o TraceData.o UnixSocketListener.o util.o 
>>> VariablesCommand.o VersionCommand.o
>>> libtool: link: ranlib .libs/libemacs.a
>>> libtool: link: ( cd ".libs" && rm -f "libemacs.la <http://libemacs.la/>" && 
>>> ln -s "../libemacs.la <http://libemacs.la/>" "libemacs.la 
>>> <http://libemacs.la/>" )
>>> make[3]: *** [all-local] Error 1
>>> make[3]: Leaving directory 
>>> `/Volumes/ARCHIVE/Language/APL/gnu-apl/SVN/trunk/src/emacs_mode'
>>> make[2]: *** [all-recursive] Error 1
>>> make[2]: Leaving directory 
>>> `/Volumes/ARCHIVE/Language/APL/gnu-apl/SVN/trunk/src'
>>> make[1]: *** [all-recursive] Error 1
>>> make[1]: Leaving directory `/Volumes/ARCHIVE/Language/APL/gnu-apl/SVN/trunk'
>>> make: *** [all] Error 2
>>> make: Leaving directory `/Volumes/ARCHIVE/Language/APL/gnu-apl/SVN/trunk'
>>>  SVN/trunk  $  
>>> 
>>>  $  svn info
>>> Path: .
>>> Working Copy Root Path: /Volumes/ARCHIVE/Language/APL/gnu-apl/SVN/trunk
>>> URL: svn://svn.savannah.gnu.org/apl/trunk 
>>> <http://svn.savannah.gnu.org/apl/trunk>
>>> Relative URL: ^/trunk
>>> Repository Root: svn://svn.savannah.gnu.org/apl 
>>> <http://svn.savannah.gnu.org/apl>
>>> Repository UUID: bd74f7bd-1a55-4bac-9fab-68015b139e80
>>> Revision: 2089
>>> Node Kind: directory
>>> Schedule: normal
>>> Last Changed Author: j_sauermann
>>> Last Changed Rev: 2089
>>> Last Changed Date: 2026-08-20 07:21:59 -0500 (Thu, 20 Aug 2026)
>>> 
>>>  $  c++ --version
>>> Apple clang version 17.0.0 (clang-1700.0.13.5)
>>> Target: arm64-apple-darwin24.6.0
>>> Thread model: posix
>>> InstalledDir: /Library/Developer/CommandLineTools/usr/bin
>>> 
>>> 
>>> On Tue, Aug 18, 2026 at 10:30 AM Dr. Jürgen Sauermann 
>>> <mail@jürgen-sauermann.de <mailto:mail@j%C3%BCrgen-sauermann.de>> wrote:
>>>> Hi Mike,
>>>> 
>>>> Thanks for the report -- found it. src/native/Makefile.am's all-local
>>>> step copies the freshly-built native-function libraries next to the
>>>> apl binary so the interpreter can be tested from the build tree without
>>>> a prior 'make install'. That step globbed .libs/*.so only; on MacOS
>>>> libtool builds .dylib instead, so the glob matches nothing, is left as
>>>> a literal (non-existent) filename, and the resulting failed 'test -f'
>>>> aborts the whole build right there -- which is exactly why your
>>>> transcript shows a fully successful compile/link/ranlib/symlink
>>>> sequence for lib_template_OP2 immediately followed by 'all-local]
>>>> Error 1' with no error text of its own: the failure is in that copy
>>>> step, not in anything you pasted above it.
>>>> 
>>>> Fixed at SVN 2087 -- now globs both *.so and *.dylib, and
>>>> can no longer abort the build either way. Please svn up and retry;
>>>> let us know if anything else comes up.
>>>> 
>>>> Jürgen
>>>> 
>>>> PS: Claude Code found and fixed this one.
>>>> 
>>>> 
>>>> On 8/18/26 16:13, M.Hall wrote:
>>>>> I get a build error with the latest SVN (happened last week, too). Used 
>>>>> to build ok earlier in the year. No changes to compiler; only security 
>>>>> updates to macOS 15.7.  Have removed existing svn/trunk directory and 
>>>>> tried a new svn clone. Same result. 
>>>>> 
>>>>> $ make clean
>>>>> $ svn up
>>>>> $ ./configure --without-x
>>>>> $ make -w
>>>>> ...
>>>>> 
>>>>> /bin/sh ../../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I. 
>>>>> -I../..     -I ./.. -g -O2  -g -O2 -I 
>>>>> /Volumes/WORK/Language/APL/gnu-apl/SVN/trunk -MT 
>>>>> lib_template_OP2_la-template_OP2.lo -MD -MP -MF 
>>>>> .deps/lib_template_OP2_la-template_OP2.Tpo -c -o 
>>>>> lib_template_OP2_la-template_OP2.lo `test -f 'template_OP2.cc' || echo 
>>>>> './'`template_OP2.cc
>>>>> libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I../.. -I ./.. -g -O2 -g -O2 
>>>>> -I /Volumes/WORK/Language/APL/gnu-apl/SVN/trunk -MT 
>>>>> lib_template_OP2_la-template_OP2.lo -MD -MP -MF 
>>>>> .deps/lib_template_OP2_la-template_OP2.Tpo -c template_OP2.cc  
>>>>> -fno-common -DPIC -o .libs/lib_template_OP2_la-template_OP2.o
>>>>> libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I../.. -I ./.. -g -O2 -g -O2 
>>>>> -I /Volumes/WORK/Language/APL/gnu-apl/SVN/trunk -MT 
>>>>> lib_template_OP2_la-template_OP2.lo -MD -MP -MF 
>>>>> .deps/lib_template_OP2_la-template_OP2.Tpo -c template_OP2.cc -o 
>>>>> lib_template_OP2_la-template_OP2.o >/dev/null 2>&1
>>>>> mv -f .deps/lib_template_OP2_la-template_OP2.Tpo 
>>>>> .deps/lib_template_OP2_la-template_OP2.Plo
>>>>> /bin/sh ../../libtool  --tag=CXX   --mode=link g++  -I ./.. -g -O2  -g 
>>>>> -O2 -I /Volumes/WORK/Language/APL/gnu-apl/SVN/trunk -avoid-version 
>>>>> -export-dynamic  -o lib_template_OP2.la -rpath /usr/local/lib/apl 
>>>>> lib_template_OP2_la-template_OP2.lo  -lpcre2-32 -lpng -lz -lfftw3 -ldl 
>>>>> -lm -lpthread 
>>>>> libtool: link: g++ -r -keep_private_externs -nostdlib -o 
>>>>> .libs/lib_template_OP2.dylib-master.o  
>>>>> .libs/lib_template_OP2_la-template_OP2.o 
>>>>> libtool: link: g++ -dynamiclib -Wl,-undefined -Wl,dynamic_lookup -o 
>>>>> .libs/lib_template_OP2.dylib .libs/lib_template_OP2.dylib-master.o  
>>>>> /usr/local/lib/libpcre2-32.dylib /usr/local/lib/libpng16.dylib -lz 
>>>>> /usr/local/lib/libfftw3.a -ldl -lm -lpthread  -g -O2 -g -O2   -pthread 
>>>>> -install_name  /usr/local/lib/apl/lib_template_OP2.dylib 
>>>>> libtool: link: ar cr .libs/lib_template_OP2.a  
>>>>> lib_template_OP2_la-template_OP2.o
>>>>> libtool: link: ranlib .libs/lib_template_OP2.a
>>>>> libtool: link: ( cd ".libs" && rm -f "lib_template_OP2.la" && ln -s 
>>>>> "../lib_template_OP2.la" "lib_template_OP2.la" )
>>>>> make[3]: *** [all-local] Error 1
>>>>> make[3]: Leaving directory 
>>>>> `/Volumes/WORK/Language/APL/gnu-apl/SVN/trunk/src/native'
>>>>> make[2]: *** [all-recursive] Error 1
>>>>> make[2]: Leaving directory 
>>>>> `/Volumes/WORK/Language/APL/gnu-apl/SVN/trunk/src'
>>>>> make[1]: *** [all-recursive] Error 1
>>>>> make[1]: Leaving directory `/Volumes/WORK/Language/APL/gnu-apl/SVN/trunk'
>>>>> make: *** [all] Error 2
>>>>> make: Leaving directory `/Volumes/WORK/Language/APL/gnu-apl/SVN/trunk' 
>>>>> 
>>>>>  $  svn info
>>>>> Path: .
>>>>> Working Copy Root Path: /Volumes/WORK/Language/APL/gnu-apl/SVN/trunk
>>>>> URL: svn://svn.savannah.gnu.org/apl/trunk 
>>>>> <http://svn.savannah.gnu.org/apl/trunk>
>>>>> Relative URL: ^/trunk
>>>>> Repository Root: svn://svn.savannah.gnu.org/apl 
>>>>> <http://svn.savannah.gnu.org/apl>
>>>>> Repository UUID: bd74f7bd-1a55-4bac-9fab-68015b139e80
>>>>> Revision: 2086
>>>>> Node Kind: directory
>>>>> Schedule: normal
>>>>> Last Changed Author: j_sauermann
>>>>> Last Changed Rev: 2086
>>>>> Last Changed Date: 2026-08-18 08:23:05 -0500 (Tue, 18 Aug 2026)
>>>>> 
>>>>>  $  g++ --version
>>>>> Apple clang version 17.0.0 (clang-1700.0.13.5)
>>>>> Target: arm64-apple-darwin24.6.0
>>>>> Thread model: posix
>>>>> InstalledDir: /Library/Developer/CommandLineTools/usr/bin
>>>>>  
>>>>> Thanks.
>>>>> --
>>>>> Mike Hall
>>>>> 
>>>>> 
>>>> 
>>> 
>>> 
>>> 
>>> --
>>> Mike Hall
>>> 
>>> 
>> 
> 

Reply via email to