[MacPorts] #72309: oscomore build error: Undefined symbols: "_environ"
MacPorts
noreply at macports.org
Tue Apr 8 14:24:56 UTC 2025
#72309: oscomore build error: Undefined symbols: "_environ"
--------------------------+-----------------------
Reporter: barracuda156 | Owner: michaelld
Type: defect | Status: assigned
Priority: Normal | Milestone:
Component: ports | Version: 2.10.5
Keywords: | Port: osmocore
--------------------------+-----------------------
{{{
/bin/sh ../libtool --tag=CC --mode=link /opt/local/bin/gcc-mp-14 -Wall
-pthread -pipe -Os -std=gnu11 -I/opt/local/include/LegacySupport -arch
ppc -DBUILDING_LIBOSMOCORE -Wall -version-info 15:0:3 -no-undefined
-Wl,-headerpad_max_install_names -std=gnu11 -lMacportsLegacySupport -arch
ppc -o libosmocore.la -rpath /opt/local/lib context.lo timer.lo
timer_gettimeofday.lo timer_clockgettime.lo select.lo signal.lo msgb.lo
bits.lo bitvec.lo bitcomp.lo counter.lo fsm.lo write_queue.lo utils.lo
socket.lo logging.lo logging_syslog.lo logging_gsmtap.lo rate_ctr.lo
gsmtap_util.lo crc16.lo panic.lo backtrace.lo conv.lo application.lo
rbtree.lo strrb.lo loggingrb.lo crc8gen.lo crc16gen.lo crc32gen.lo
crc64gen.lo macaddr.lo stat_item.lo stats.lo stats_statsd.lo prim.lo
conv_acc.lo conv_acc_generic.lo sercomm.lo prbs.lo isdnhdlc.lo tdef.lo
sockaddr_str.lo use_count.lo exec.lo plugin.lo msgfile.lo serial.lo
-L/opt/local/lib -Wl,-rpath,/opt/local/lib -ltalloc
libtool: link: /opt/local/bin/gcc-mp-14 -dynamiclib -o
.libs/libosmocore.12.dylib .libs/context.o .libs/timer.o
.libs/timer_gettimeofday.o .libs/timer_clockgettime.o .libs/select.o
.libs/signal.o .libs/msgb.o .libs/bits.o .libs/bitvec.o .libs/bitcomp.o
.libs/counter.o .libs/fsm.o .libs/write_queue.o .libs/utils.o
.libs/socket.o .libs/logging.o .libs/logging_syslog.o
.libs/logging_gsmtap.o .libs/rate_ctr.o .libs/gsmtap_util.o .libs/crc16.o
.libs/panic.o .libs/backtrace.o .libs/conv.o .libs/application.o
.libs/rbtree.o .libs/strrb.o .libs/loggingrb.o .libs/crc8gen.o
.libs/crc16gen.o .libs/crc32gen.o .libs/crc64gen.o .libs/macaddr.o
.libs/stat_item.o .libs/stats.o .libs/stats_statsd.o .libs/prim.o
.libs/conv_acc.o .libs/conv_acc_generic.o .libs/sercomm.o .libs/prbs.o
.libs/isdnhdlc.o .libs/tdef.o .libs/sockaddr_str.o .libs/use_count.o
.libs/exec.o .libs/plugin.o .libs/msgfile.o .libs/serial.o
-lMacportsLegacySupport -L/opt/local/lib -ltalloc -Os -arch ppc
-Wl,-headerpad_max_install_names -arch ppc -Wl,-rpath -Wl,/opt/local/lib
-pthread -install_name /opt/local/lib/libosmocore.12.dylib
-compatibility_version 16 -current_version 16.0 -Wl,-single_module
Undefined symbols:
"_environ", referenced from:
_environ$non_lazy_ptr in exec.o
(maybe you meant: _osmo_environment_append, _environ$non_lazy_ptr ,
_osmo_environment_filter , _osmo_environment_whitelist )
ld: symbol(s) not found
collect2: error: ld returned 1 exit status
make[3]: *** [libosmocore.la] Error 1
}}}
Common bug; the correct code would be:
{{{
--- a/src/exec.c 2020-01-03 01:42:30.000000000 +0800
+++ b/src/exec.c 2025-04-08 22:17:16.000000000 +0800
@@ -190,7 +190,12 @@
}
/* Seems like POSIX has no header file for this, and even glibc +
__USE_GNU doesn't help */
+#ifdef __APPLE__
+#include <crt_externs.h>
+#define environ (*_NSGetEnviron())
+#else
extern char **environ;
+#endif
/*! call an external shell command without waiting for it.
*
}}}
--
Ticket URL: <https://trac.macports.org/ticket/72309>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list