summaryrefslogtreecommitdiff
path: root/util/kconfig/confdata.c
diff options
context:
space:
mode:
authorPatrick Georgi <patrick.georgi@coresystems.de>2009-11-21 19:54:02 +0000
committerPatrick Georgi <patrick.georgi@coresystems.de>2009-11-21 19:54:02 +0000
commit26774f2b729d791c9dbf5ba0f7fcf4a59e3795a5 (patch)
tree0c6bd1252925799a2f9f7f62707d24b663170302 /util/kconfig/confdata.c
parentb198a478ed190552f5228e43bc34391ca7b0f2dd (diff)
downloadcoreboot-26774f2b729d791c9dbf5ba0f7fcf4a59e3795a5.tar.xz
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
Diffstat (limited to 'util/kconfig/confdata.c')
-rw-r--r--util/kconfig/confdata.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/util/kconfig/confdata.c b/util/kconfig/confdata.c
index 05c260161e..56a0eb0851 100644
--- a/util/kconfig/confdata.c
+++ b/util/kconfig/confdata.c
@@ -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;