Make the kconfig-style build work in mingw:
* use relative paths in ldscript.ld and crt0_includes.h * avoid use of dd(1) in xcompile * build libregex for kconfig, if necessary * work around missing utsname on win32 * unlink targets before rename on win32 * implement (crude) mkstemp for win32 * avoid open/read/close, use fopen/fread/fclose instead * don't free certain data structures in romcc on win32 to avoid crashes (likely use-after-free()) * handle "\CRLF" and win32 style absolute paths (X:/ or X:\) in romcc * make lzma (part of cbfstool) build on XP * implement ntohl/htonl on win32 * handle CRLF in awk script * set larger stack for romcc on win32 Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de> Acked-by: Peter Stuge <peter@stuge.se> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4952 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
@@ -15,6 +15,13 @@
|
||||
#define LKC_DIRECT_LINK
|
||||
#include "lkc.h"
|
||||
|
||||
#ifdef WIN32
|
||||
#define mkdir(x,y) mkdir(x)
|
||||
#define UNLINK_IF_NECESSARY(x) unlink(x)
|
||||
#else
|
||||
#define UNLINK_IF_NECESSARY(X)
|
||||
#endif
|
||||
|
||||
static void conf_warning(const char *fmt, ...)
|
||||
__attribute__ ((format (printf, 1, 2)));
|
||||
|
||||
@@ -539,6 +546,7 @@ int conf_write(const char *name)
|
||||
if (*tmpname) {
|
||||
strcat(dirname, basename);
|
||||
strcat(dirname, ".old");
|
||||
UNLINK_IF_NECESSARY(dirname);
|
||||
rename(newname, dirname);
|
||||
if (rename(tmpname, newname))
|
||||
return 1;
|
||||
@@ -775,6 +783,7 @@ int conf_write_autoconf(void)
|
||||
name = getenv("KCONFIG_AUTOHEADER");
|
||||
if (!name)
|
||||
name = "include/linux/autoconf.h";
|
||||
UNLINK_IF_NECESSARY(name);
|
||||
if (rename(".tmpconfig.h", name))
|
||||
return 1;
|
||||
name = getenv("KCONFIG_AUTOCONFIG");
|
||||
@@ -784,6 +793,7 @@ int conf_write_autoconf(void)
|
||||
* This must be the last step, kbuild has a dependency on auto.conf
|
||||
* and this marks the successful completion of the previous steps.
|
||||
*/
|
||||
UNLINK_IF_NECESSARY(name);
|
||||
if (rename(".tmpconfig", name))
|
||||
return 1;
|
||||
|
||||
|
Reference in New Issue
Block a user