set djgpp_ver=1\r
If ErrorLevel 20 set djgpp_ver=2\r
rm -f junk.c junk junk.exe\r
-rem DJECHO is used by the top-level Makefile\r
+rem The v1.x build does not need djecho\r
+if "%DJGPP_VER%" == "1" Goto djechoOk\r
+rem DJECHO is used by the top-level Makefile in the v2.x build\r
Echo Checking whether 'djecho' is available...\r
redir -o Nul -eo djecho -o junk.$$$ foo\r
If Exist junk.$$$ Goto djechoOk\r
:src41\r
sed -f ../msdos/sed2v2.inp <config.tmp >config.h2\r
:src42\r
+Rem See if DECL_ALIGN can be supported with this GCC\r
+rm -f junk.c junk.o junk junk.exe\r
+echo struct { int i; char *p; } __attribute__((__aligned__(8))) foo; >junk.c\r
+rem Two percent signs because it is a special character for COMMAND.COM/CMD\r
+rem Filter thru Sed because "&" is special for CMD.EXE\r
+echo int main(void) { return (unsigned long)"&"foo %% 8; } | sed "s/.&./\&/" >>junk.c\r
+gcc -o junk junk.c\r
+if not exist junk.exe coff2exe junk\r
+junk\r
+If Not ErrorLevel 1 Goto alignOk\r
+Echo WARNING: Your GCC does not support 8-byte aligned variables.\r
+Echo WARNING: Therefore Emacs cannot support buffers larger than 128MB.\r
+rem The following line disables DECL_ALIGN which in turn disables USE_LSB_TAG\r
+rem For details see lisp.h where it defines USE_LSB_TAG\r
+echo #define NO_DECL_ALIGN >>config.h2\r
+:alignOk\r
+rm -f junk.c junk junk.exe\r
update config.h2 config.h >nul\r
rm -f config.tmp config.h2\r
\r