Subject: 26.0.90; Compile error with Emacs 26 on macOS 10.13

From: George Plymale II <[email-masked]>
Date: Thu, 12 Oct 2017 02:19:19 -0400

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...