bug#28793: 26.0.90; Compile error with Emacs 26 on macOS 10.13

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

bug#28793: 26.0.90; Compile error with Emacs 26 on macOS 10.13

George Plymale II
So I tried compiling Emacs 26 on macOS 10.13. I configured with
`./configure' and everything went fine. However, when I ran `make', the
following error appeared:



/Applications/Xcode.app/Contents/Developer/usr/bin/make -C lib all
  CC       acl_entries.o
  CC       explicit_bzero.o
  CC       fpending.o
  CC       fstatat.o
  CC       getopt.o
  CC       getopt1.o
  CC       lstat.o
  CC       memrchr.o
  CC       mktime.o
  CC       open.o
open.c:75:27: error: unknown type name 'PROMOTED_MODE_T'
      mode = va_arg (arg, PROMOTED_MODE_T);
                          ^
1 error generated.
make[1]: *** [open.o] Error 1
make: *** [lib] Error 2



Upon inspecting this error, I see the following comment above the
offending code:

/* We have to use PROMOTED_MODE_T instead of mode_t, otherwise GCC 4
   creates crashing code when 'mode_t' is smaller than 'int'.  */

I also see the following output regarding `open.c' when I compile with
`make CFLAGS="-v"':



...
  CC       open.o
Apple LLVM version 9.0.0 (clang-900.0.37)
Target: x86_64-apple-darwin17.0.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
 "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" -cc1 -triple x86_64-apple-macosx10.13.0 -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name open.c -mrelocation-model pic -pic-level 2 -mthread-model posix -mdisable-fp-elim -fno-strict-return -masm-verbose -munwind-tables -target-cpu penryn -target-linker-version 302.3 -v -dwarf-column-info -debugger-tuning=lldb -coverage-notes-file /Users/my_username/path/to/emacs/lib/open.gcno -resource-dir /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/9.0.0 -dependency-file deps/open.d -MT open.o -MP -I . -I ../src -I . -I ./../src -Wno-switch -Wno-pointer-sign -Wno-string-plus-int -Wno-unknown-attributes -Wno-initializer-overrides -Wno-tautological-compare -Wno-tautological-constant-out-of-range-compare -fdebug-compilation-dir /Users/my_username/path/to/emacs/lib -ferror-limit 19 -fmessage-length 119 -stack-protector 1 -fblocks -fobjc-runtime=macosx-10.13.0 -fencode-extended-block-signature -fmax-type-align=16 -fdiagnostics-show-option -fcolor-diagnostics -o open.o -x c open.c
clang -cc1 version 9.0.0 (clang-900.0.37) default target x86_64-apple-darwin17.0.0
ignoring duplicate directory "."
ignoring duplicate directory "../src"
#include "..." search starts here:
#include <...> search starts here:
 .
 ../src
 /usr/local/include
 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/9.0.0/include
 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include
 /usr/include
 /System/Library/Frameworks (framework directory)
 /Library/Frameworks (framework directory)
End of search list.
open.c:75:27: error: unknown type name 'PROMOTED_MODE_T'
      mode = va_arg (arg, PROMOTED_MODE_T);
                          ^
1 error generated.
make[1]: *** [open.o] Error 1
make: *** [lib] Error 2



Anyone know how to fix this error? I'd hate to run into something like
this in a non-release-candidate release...



Reply | Threaded
Open this post in threaded view
|

bug#28793: 26.0.90; Compile error with Emacs 26 on macOS 10.13

Eli Zaretskii
> From: George Plymale II <[hidden email]>
> Date: Thu, 12 Oct 2017 02:19:19 -0400
>
> open.c:75:27: error: unknown type name 'PROMOTED_MODE_T'
>       mode = va_arg (arg, PROMOTED_MODE_T);
>                           ^
> 1 error generated.
> make[1]: *** [open.o] Error 1

PROMOTED_MODE_T is defined in src/config.h, please see what happened
there.  On my system, I see this in config.h:

  /* Define to the type that is the result of default argument promotions of
     type mode_t. */
  #define PROMOTED_MODE_T int

On another system I see this:

  /* Define to the type that is the result of default argument promotions of
     type mode_t. */
  #define PROMOTED_MODE_T mode_t



Reply | Threaded
Open this post in threaded view
|

bug#28793: 26.0.90; Compile error with Emacs 26 on macOS 10.13

George Plymale II
Thanks for the tip. I see no results in my src/config.h when I run `M-x
occur PROMOTED_MODE_T'

Did I miss something in the configure stage? I'm sure that this can't be
right and there must be something odd on my end.



Reply | Threaded
Open this post in threaded view
|

bug#28793: 26.0.90; Compile error with Emacs 26 on macOS 10.13

Eli Zaretskii
> From: George Plymale II <[hidden email]>
> Cc: [hidden email], [hidden email]
> Date: Thu, 12 Oct 2017 06:43:23 -0400
>
> Thanks for the tip. I see no results in my src/config.h when I run `M-x
> occur PROMOTED_MODE_T'

That's strange.  src /config.in includes this:

  /* Define to the type that is the result of default argument promotions of
     type mode_t. */
  #undef PROMOTED_MODE_T

Do you see it?  (Please don't rely on "M-x occur", it's possible that
it fails to find the string for some unrelated reason.  Please search
manually around line 1470.)

> Did I miss something in the configure stage? I'm sure that this can't be
> right and there must be something odd on my end.

Does config.log include any references to "promoted mode_t"?



Reply | Threaded
Open this post in threaded view
|

bug#28793: 26.0.90; Compile error with Emacs 26 on macOS 10.13

George Plymale II
Ok, so it turns out that I just needed to do `make distclean' and re-run
`./autogen.sh'. I guess my `src/config.in' was out of date and so that
is what caused the issue. Everything is fine now!

Thanks a lot for the advice; feel free to close this ticket.



Reply | Threaded
Open this post in threaded view
|

bug#28793: 26.0.90; Compile error with Emacs 26 on macOS 10.13

Eli Zaretskii
> From: George Plymale II <[hidden email]>
> Cc: [hidden email], [hidden email], [hidden email]
> Date: Thu, 12 Oct 2017 20:52:25 -0400
>
> Ok, so it turns out that I just needed to do `make distclean' and re-run
> `./autogen.sh'. I guess my `src/config.in' was out of date and so that
> is what caused the issue. Everything is fine now!
>
> Thanks a lot for the advice; feel free to close this ticket.

Thanks, done.