Upgraded my Intel Apple to macOS Monterey, version 12.2.
Using MacPort which got updated as well. MacPort will install its libraries to
/opt/local/lib which
includes ncurses.
Downloaded a fresh, pristine version of ooRexx from trunk and started to create
a universal build with:
*cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_OSX_UNIVERSAL_BINARIES=1
~/dev/oorexx_allura/main/trunk*
-- CMake version is 3.22.2
-- The C compiler identification is AppleClang 12.0.5.12050022
-- The CXX compiler identification is AppleClang 12.0.5.12050022
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler:
/Library/Developer/CommandLineTools/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler:
/Library/Developer/CommandLineTools/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Building for a 64-bit architecture
-- OOREXX_SHEBANG_PROGRAM: "/usr/bin/env rexx" (default)
-- Found Subversion: /opt/local/bin/svn (found version "1.14.1")
-- SVN Revision Number is 12352
-- CMAKE_INSTALL_PREFIX is /Users/rony/Applications/ooRexx5
-- INSTALL_LIB_DIR is lib
-- Looking for xlocale.h
-- Looking for xlocale.h - found
-- Looking for malloc.h
-- Looking for malloc.h - not found
-- Looking for alloca.h
-- Looking for alloca.h - found
-- Looking for signal.h
-- Looking for signal.h - found
-- Looking for time.h
-- Looking for time.h - found
-- Looking for inttypes.h
-- Looking for inttypes.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for nsleep
-- Looking for nsleep - not found
-- Looking for nanosleep
-- Looking for nanosleep - found
-- Looking for crypt in crypt
-- Looking for crypt in crypt - not found
-- Looking for crypt
-- Looking for crypt - found
-- Looking for wordexp
-- Looking for wordexp - found
-- Looking for wordexp.h
-- Looking for wordexp.h - found
-- Looking for sys/xattr.h
-- Looking for sys/xattr.h - found
-- Looking for catopen
-- Looking for catopen - found
-- Looking for dlfcn.h
-- Looking for dlfcn.h - found
-- Looking for features.h
-- Looking for features.h - not found
-- Looking for filehdr.h
-- Looking for filehdr.h - not found
-- Looking for euidaccess
-- Looking for euidaccess - not found
-- Looking for nl_types.h
-- Looking for nl_types.h - found
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_mutex_timedlock
-- Looking for pthread_mutex_timedlock - not found
-- Performing Test HAVE_DLADDR
-- Performing Test HAVE_DLADDR - Success
-- Looking for _PC_CASE_SENSITIVE
-- Looking for _PC_CASE_SENSITIVE - found
-- Looking for FNM_CASEFOLD
-- Looking for FNM_CASEFOLD - found
-- Looking for KDMKTONE
-- Looking for KDMKTONE - not found
-- Looking for FS_CASEFOLD_FL
-- Looking for FS_CASEFOLD_FL - not found
-- Looking for _NSGetExecutablePath
-- Looking for _NSGetExecutablePath - found
-- Looking for getexecname
-- Looking for getexecname - not found
-- Looking for KERN_PROC_PATHNAME
-- Looking for KERN_PROC_PATHNAME - not found
-- Looking for KERN_PROC_ARGV
-- Looking for KERN_PROC_ARGV - not found
-- Performing Test HAVE_STAT_ST_MTIM
-- Performing Test HAVE_STAT_ST_MTIM - Failed
-- Performing Test HAVE_STAT_ST_MTIMESPEC
-- Performing Test HAVE_STAT_ST_MTIMESPEC - Success
-- Looking for pwd.h
-- Looking for pwd.h - found
-- Looking for sched.h
-- Looking for sched.h - found
-- Looking for strings.h
-- Looking for strings.h - found
-- Looking for sys/filio.h
-- Looking for sys/filio.h - found
-- Looking for sys/ldr.h
-- Looking for sys/ldr.h - not found
-- Looking for sys/resource.h
-- Looking for sys/resource.h - found
-- Looking for sys/select.h
-- Looking for sys/select.h - found
-- Looking for sys/sem.h
-- Looking for sys/sem.h - found
-- Looking for sys/signal.h
-- Looking for sys/signal.h - found
-- Looking for sys/time.h
-- Looking for sys/time.h - found
-- Looking for sys/utsname.h
-- Looking for sys/utsname.h - found
-- Looking for sys/wait.h
-- Looking for sys/wait.h - found
*-- Looking for wsyncup in /opt/local/lib/libcurses.dylib****-- Looking for
wsyncup in /opt/local/lib/libcurses.dylib - not found****-- Looking for wsyncup
in /opt/local/lib/libncurses.dylib****-- Looking for wsyncup in
/opt/local/lib/libncurses.dylib - not found****-- Looking for cbreak in
/opt/local/lib/libncurses.dylib****-- Looking for cbreak in
/opt/local/lib/libncurses.dylib - not found****-- Looking for nodelay in
/opt/local/lib/libncurses.dylib****-- Looking for nodelay in
/opt/local/lib/libncurses.dylib - not found*
*-- Found Curses: /opt/local/lib/libncurses.dylib ****--
CURSES_HAVE_NCURSES_H is /opt/local/include/ncurses.h*
-- CURSES_HAVE_NCURSES_NCURSES_H is CURSES_HAVE_NCURSES_NCURSES_H-NOTFOUND
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/rony/work/oorexx_build
rony@wu114176 oorexx_build % make
Everything looks fine (libraries built so far are universal) until linking for
orxncurses is attempted:
... cut ...
[ 85%] Building CXX object
CMakeFiles/rxunixsys.dir/extensions/platform/unix/rxunixsys/rxunixsys.cpp.o
[ 85%] Linking CXX shared library lib/librxunixsys.dylib
[ 85%] Built target rxunixsys
[ 86%] Building CXX object
CMakeFiles/orxncurses.dir/extensions/orxncurses/orxncurses.cpp.o
[ 86%] Linking CXX shared library lib/liborxncurses.dylib
*ld: warning: ignoring file /opt/local/lib/libncurses.dylib, building for
macOS-arm64 but
attempting to link with file built for macOS-x86_64****ld: warning:
ignoring file /opt/local/lib/libform.dylib, building for macOS-arm64 but
attempting to link with file built for macOS-x86_64****Undefined symbols
for architecture arm64:*** "_COLORS", referenced from:
_OrxCurColors in orxncurses.cpp.o
OrxCurColors_impl(RexxMethodContext_*) in orxncurses.cpp.o
"_COLOR_PAIRS", referenced from:
_OrxCurColor_pairs in orxncurses.cpp.o
OrxCurColor_pairs_impl(RexxMethodContext_*) in orxncurses.cpp.o
... cut ...
"_wtouchln", referenced from:
_OrxCurTouchline in orxncurses.cpp.o
OrxCurTouchline_impl(RexxMethodContext_*, int, int, void*) in
orxncurses.cpp.o
_OrxCurTouchwin in orxncurses.cpp.o
OrxCurTouchwin_impl(RexxMethodContext_*, void*) in orxncurses.cpp.o
_OrxCurUntouchwin in orxncurses.cpp.o
OrxCurUntouchwin_impl(RexxMethodContext_*, void*) in orxncurses.cpp.o
_OrxCurWtouchln in orxncurses.cpp.o
...
"_wvline", referenced from:
_OrxCurVline in orxncurses.cpp.o
OrxCurVline_impl(RexxMethodContext_*, int, int, void*) in
orxncurses.cpp.o
_OrxCurMvvline in orxncurses.cpp.o
OrxCurMvvline_impl(RexxMethodContext_*, int, int, int, int, void*) in
orxncurses.cpp.o
*ld: symbol(s) not found for architecture arm64****clang: error: linker
command failed with exit code 1 (use -v to see invocation)****make[2]: ***
[lib/liborxncurses.4.dylib] Error 1****make[1]: ***
[CMakeFiles/orxncurses.dir/all] Error 2****make: *** [all] Error
2***rony@wu114176 oorexx_build %
If moving /opt/local/lib/libncurs* away and then rerunning cmake makes
everything work:
rony@wu114176 oorexx_build % cmake -DCMAKE_BUILD_TYPE=Release
-DBUILD_OSX_UNIVERSAL_BINARIES=1 ~/dev/oorexx_allura/main/trunk
-- CMake version is 3.22.2
-- The C compiler identification is AppleClang 12.0.5.12050022
-- The CXX compiler identification is AppleClang 12.0.5.12050022
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler:
/Library/Developer/CommandLineTools/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler:
/Library/Developer/CommandLineTools/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Building for a 64-bit architecture
-- OOREXX_SHEBANG_PROGRAM: "/usr/bin/env rexx" (default)
-- Found Subversion: /opt/local/bin/svn (found version "1.14.1")
-- SVN Revision Number is 12352
-- CMAKE_INSTALL_PREFIX is /Users/rony/Applications/ooRexx5
-- INSTALL_LIB_DIR is lib
-- Looking for xlocale.h
-- Looking for xlocale.h - found
-- Looking for malloc.h
-- Looking for malloc.h - not found
-- Looking for alloca.h
-- Looking for alloca.h - found
-- Looking for signal.h
-- Looking for signal.h - found
-- Looking for time.h
-- Looking for time.h - found
-- Looking for inttypes.h
-- Looking for inttypes.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for nsleep
-- Looking for nsleep - not found
-- Looking for nanosleep
-- Looking for nanosleep - found
-- Looking for crypt in crypt
-- Looking for crypt in crypt - not found
-- Looking for crypt
-- Looking for crypt - found
-- Looking for wordexp
-- Looking for wordexp - found
-- Looking for wordexp.h
-- Looking for wordexp.h - found
-- Looking for sys/xattr.h
-- Looking for sys/xattr.h - found
-- Looking for catopen
-- Looking for catopen - found
-- Looking for dlfcn.h
-- Looking for dlfcn.h - found
-- Looking for features.h
-- Looking for features.h - not found
-- Looking for filehdr.h
-- Looking for filehdr.h - not found
-- Looking for euidaccess
-- Looking for euidaccess - not found
-- Looking for nl_types.h
-- Looking for nl_types.h - found
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_mutex_timedlock
-- Looking for pthread_mutex_timedlock - not found
-- Performing Test HAVE_DLADDR
-- Performing Test HAVE_DLADDR - Success
-- Looking for _PC_CASE_SENSITIVE
-- Looking for _PC_CASE_SENSITIVE - found
-- Looking for FNM_CASEFOLD
-- Looking for FNM_CASEFOLD - found
-- Looking for KDMKTONE
-- Looking for KDMKTONE - not found
-- Looking for FS_CASEFOLD_FL
-- Looking for FS_CASEFOLD_FL - not found
-- Looking for _NSGetExecutablePath
-- Looking for _NSGetExecutablePath - found
-- Looking for getexecname
-- Looking for getexecname - not found
-- Looking for KERN_PROC_PATHNAME
-- Looking for KERN_PROC_PATHNAME - not found
-- Looking for KERN_PROC_ARGV
-- Looking for KERN_PROC_ARGV - not found
-- Performing Test HAVE_STAT_ST_MTIM
-- Performing Test HAVE_STAT_ST_MTIM - Failed
-- Performing Test HAVE_STAT_ST_MTIMESPEC
-- Performing Test HAVE_STAT_ST_MTIMESPEC - Success
-- Looking for pwd.h
-- Looking for pwd.h - found
-- Looking for sched.h
-- Looking for sched.h - found
-- Looking for strings.h
-- Looking for strings.h - found
-- Looking for sys/filio.h
-- Looking for sys/filio.h - found
-- Looking for sys/ldr.h
-- Looking for sys/ldr.h - not found
-- Looking for sys/resource.h
-- Looking for sys/resource.h - found
-- Looking for sys/select.h
-- Looking for sys/select.h - found
-- Looking for sys/sem.h
-- Looking for sys/sem.h - found
-- Looking for sys/signal.h
-- Looking for sys/signal.h - found
-- Looking for sys/time.h
-- Looking for sys/time.h - found
-- Looking for sys/utsname.h
-- Looking for sys/utsname.h - found
-- Looking for sys/wait.h
-- Looking for sys/wait.h - found
*-- Looking for wsyncup in
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/lib/libcurses.tbd****--
Looking for wsyncup in
***/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/*lib/libcurses.tbd
- found****-- Looking for cbreak in
***/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/*lib/libncurses.tbd****--
Looking for cbreak in
***/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/*lib/libncurses.tbd
- found****-- Looking for nodelay in
***/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/*lib/libncurses.tbd****--
Looking for nodelay in
***/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/*lib/libncurses.tbd
- found****-- Found Curses:
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/lib/libncurses.tbd
****-- CURSES_HAVE_NCURSES_H is
***/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/*include/ncurses.h*
-- CURSES_HAVE_NCURSES_NCURSES_H is CURSES_HAVE_NCURSES_NCURSES_H-NOTFOUND
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/rony/work/oorexx_build
rony@wu114176 oorexx_build % make
---
... cut ...
Consolidate compiler generated dependencies of target rxunixsys
[ 85%] Built target rxunixsys
Consolidate compiler generated dependencies of target orxncurses [ 86%]
Building CXX object
CMakeFiles/orxncurses.dir/extensions/orxncurses/orxncurses.cpp.o [ 86%]
Linking CXX shared
library lib/liborxncurses.dylib
[ 86%] Built target orxncurses
[ 87%] Generating bin/ncurses.cls
[ 87%] Built target ncurses_cls
... cut ...
The result is a universal liborxncurses.dylib indeed.
---
Question: how can one make sure that on Apple its SDKs get searched for ncurses
such that one can
create a universal build?
---rony
_______________________________________________
Oorexx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/oorexx-devel