Sam Steingold wrote: > I get this error when linking Emacs: > > --8<---------------cut here---------------start------------->8--- > CCLD temacs > Undefined symbols for architecture x86_64: > "_freea", referenced from: > _rpl_realpath in libgnu.a(canonicalize-lgpl.o) > ld: symbol(s) not found for architecture x86_64 > clang: error: linker command failed with exit code 1 (use -v to see > invocation) > make[1]: *** [temacs] Error 1 > --8<---------------cut here---------------end--------------->8--- > > I also reported this as https://debbugs.gnu.org/cgi/bugreport.cgi?bug=36356 > (https://lists.gnu.org/archive/html/bug-gnu-emacs/2019-06/msg01229.html)
1) After your latest "git pull" from emacs, have you done a "make distclean" followed by a reconfiguration? If you don't remember: Does the issue persist after a "make distclean" followed by a reconfiguration? 2) Which symbols does nm lib/malloca.o show? If, as I would expect, it lists '_mmalloca' but not '_freea', it means that the macro HAVE_ALLOCA was defined in the compilation unit canonicalize-lgpl.c but not defined in the compilation unit malloca.c. Can you investigate why this is so? (Where is HAVE_ALLOCA defined? In config.h, I would guess. It is undefined somewhere? I would guess no. What are the preprocessor symbols that are defined [use "$CC -E -dM"] in the compilation unit canonicalize-lgpl.c, versus the compilation unit malloca.c? Bruno