[Buildroot] r19025 breaks non-libintl.h

From: Allan Clark <hidden>
Date: 2007-07-09 14:26:24

(top-post to make more visible)

This change to trunk/buildroot/Makefile breaks non-libintl.h platforms.

in package/config/Makefile.kconfig HOSTCFLAGS is altered when
'#include <libintl.h>' fails to build -- it adds -DKBUILD_NO_NLS to
HOSTCFLAGS, which is then used in lkc.h included by conf.c

r19025 change overrides the HOSTCFLAGS on the $(MAKE) command-line,
removing this and other configs.

A quick-fix (works on MacOSX-10.4.10) would be to change
Makefile.kconfig to set this value on the HOST_EXTRACFLAGS:


Index: package/config/Makefile.kconfig
===================================================================
--- package/config/Makefile.kconfig     (revision 19054)
+++ package/config/Makefile.kconfig     (working copy)
@@ -147,7 +147,7 @@
      then echo yes ; \
      else echo no ; fi)
 ifeq ($(KBUILD_HAVE_NLS),no)
-HOSTCFLAGS     += -DKBUILD_NO_NLS
+HOST_EXTRACFLAGS       += -DKBUILD_NO_NLS
 endif

 # generated files seem to need this to find local include files


Allan


On 7/7/07, aldot at uclibc.org [off-list ref] wrote:
quoted hunk
Author: aldot
Date: 2007-07-07 17:00:17 -0700 (Sat, 07 Jul 2007)
New Revision: 19025

Log:
- silence a cosmetic warning (closes several issues in mantis).
  This also provides a nice up-to-date filestamp if something got reconfigured (e.g. c++ support got toggled) that can be used in the future to depend accordingly.


Modified:
   trunk/buildroot/Makefile
   trunk/buildroot/package/config/confdata.c
   trunk/buildroot/package/config/kconfig-to-buildroot2.patch


Changeset:
Modified: trunk/buildroot/Makefile
===================================================================
--- trunk/buildroot/Makefile    2007-07-07 23:55:19 UTC (rev 19024)
+++ trunk/buildroot/Makefile    2007-07-08 00:00:17 UTC (rev 19025)
@@ -84,7 +84,7 @@
 HOSTCXX:=$(shell $(CONFIG_SHELL) which $(HOSTCXX) || type -p $(HOSTCXX) || echo g++)
 HOSTLD:=$(shell $(CONFIG_SHELL) which $(HOSTLD) || type -p $(HOSTLD) || echo ld)
 ifndef CFLAGS_FOR_BUILD
-CFLAGS_FOR_BUILD:="-g -O2"
+CFLAGS_FOR_BUILD:=-g -O2
 endif
 export HOSTAR HOSTAS HOSTCC HOSTCXX HOSTLD
@@ -264,40 +264,61 @@
 # ---------------------------------------------------------------------------

 $(CONFIG)/conf:
-       $(MAKE) CC="$(HOSTCC)" CFLAGS=$(CFLAGS_FOR_BUILD) MAKECMDGOALS="$(MAKECMDGOALS)" \
+       $(MAKE) CC="$(HOSTCC)" HOSTCFLAGS="$(CFLAGS_FOR_BUILD)" MAKECMDGOALS="$(MAKECMDGOALS)" \
                -C $(CONFIG) conf
        - at if [ ! -f .config ] ; then \
                cp $(CONFIG_DEFCONFIG) .config; \
        fi
 $(CONFIG)/mconf:
-       $(MAKE) CC="$(HOSTCC)" CFLAGS=$(CFLAGS_FOR_BUILD) MAKECMDGOALS="$(MAKECMDGOALS)" \
+       $(MAKE) CC="$(HOSTCC)" HOSTCFLAGS="$(CFLAGS_FOR_BUILD)" MAKECMDGOALS="$(MAKECMDGOALS)" \
                -C $(CONFIG) conf mconf
        - at if [ ! -f .config ] ; then \
                cp $(CONFIG_DEFCONFIG) .config; \
        fi

 menuconfig: $(CONFIG)/mconf
-       @$(CONFIG)/mconf $(CONFIG_CONFIG_IN)
+       @-mkdir -p include/config
+       @KCONFIG_AUTOCONFIG=include/config/auto.conf \
+               KCONFIG_AUTOHEADER=include/autoconf.h \
+               $(CONFIG)/mconf $(CONFIG_CONFIG_IN)

 config: $(CONFIG)/conf
-       @$(CONFIG)/conf $(CONFIG_CONFIG_IN)
+       @-mkdir -p include/config
+       @KCONFIG_AUTOCONFIG=include/config/auto.conf \
+               KCONFIG_AUTOHEADER=include/autoconf.h \
+               $(CONFIG)/conf $(CONFIG_CONFIG_IN)

 oldconfig: $(CONFIG)/conf
-       @$(CONFIG)/conf -o $(CONFIG_CONFIG_IN)
+       @-mkdir -p include/config
+       @KCONFIG_AUTOCONFIG=include/config/auto.conf \
+               KCONFIG_AUTOHEADER=include/autoconf.h \
+               $(CONFIG)/conf -o $(CONFIG_CONFIG_IN)

 randconfig: $(CONFIG)/conf
-       @$(CONFIG)/conf -r $(CONFIG_CONFIG_IN)
+       @-mkdir -p include/config
+       @KCONFIG_AUTOCONFIG=include/config/auto.conf \
+               KCONFIG_AUTOHEADER=include/autoconf.h \
+               $(CONFIG)/conf -r $(CONFIG_CONFIG_IN)

 allyesconfig: $(CONFIG)/conf
-       cp $(CONFIG_DEFCONFIG) .config
-       @$(CONFIG)/conf -y $(CONFIG_CONFIG_IN)
+       cat $(CONFIG_DEFCONFIG) > .config
+       @-mkdir -p include/config
+       @KCONFIG_AUTOCONFIG=include/config/auto.conf \
+               KCONFIG_AUTOHEADER=include/autoconf.h \
+               $(CONFIG)/conf -y $(CONFIG_CONFIG_IN)
        #sed -i -e "s/^CONFIG_DEBUG.*/# CONFIG_DEBUG is not set/" .config

 allnoconfig: $(CONFIG)/conf
-       @$(CONFIG)/conf -n $(CONFIG_CONFIG_IN)
+       @-mkdir -p include/config
+       @KCONFIG_AUTOCONFIG=include/config/auto.conf \
+               KCONFIG_AUTOHEADER=include/autoconf.h \
+               $(CONFIG)/conf -n $(CONFIG_CONFIG_IN)

 defconfig: $(CONFIG)/conf
-       @$(CONFIG)/conf -d $(CONFIG_CONFIG_IN)
+       @-mkdir -p include/config
+       @KCONFIG_AUTOCONFIG=include/config/auto.conf \
+               KCONFIG_AUTOHEADER=include/autoconf.h \
+               $(CONFIG)/conf -d $(CONFIG_CONFIG_IN)

 # check if download URLs are outdated
 source-check: allyesconfig
Modified: trunk/buildroot/package/config/confdata.c
===================================================================
--- trunk/buildroot/package/config/confdata.c   2007-07-07 23:55:19 UTC (rev 19024)
+++ trunk/buildroot/package/config/confdata.c   2007-07-08 00:00:17 UTC (rev 19025)
@@ -11,6 +11,7 @@
 #include <string.h>
 #include <time.h>
 #include <unistd.h>
+#include <libgen.h>

 #define LKC_DIRECT_LINK
 #include "lkc.h"
@@ -529,7 +530,7 @@

 int conf_split_config(void)
 {
-       char *name, path[128];
+       char *name, path[128], *opwd, *dir, *_name;
        char *s, *d, c;
        struct symbol *sym;
        struct stat sb;
@@ -540,8 +541,20 @@
                name = "include/config/auto.conf";
        conf_read_simple(name, S_DEF_AUTO);

-       if (chdir("include/config"))
+       opwd = malloc(256);
+       _name = strdup(name);
+       if (opwd == NULL || _name == NULL)
                return 1;
+       opwd = getcwd(opwd, 256);
+       dir = dirname(_name);
+       if (dir == NULL) {
+               res = 1;
+               goto err;
+       }
+       if (chdir(dir)) {
+               res = 1;
+               goto err;
+       }

        res = 0;
        for_all_symbols(i, sym) {
@@ -634,9 +647,11 @@
                close(fd);
        }
 out:
-       if (chdir("../.."))
-               return 1;
-
+       if (chdir(opwd))
+               res = 1;
+err:
+       free(opwd);
+       free(_name);
        return res;
 }

Modified: trunk/buildroot/package/config/kconfig-to-buildroot2.patch
===================================================================
--- trunk/buildroot/package/config/kconfig-to-buildroot2.patch  2007-07-07 23:55:19 UTC (rev 19024)
+++ trunk/buildroot/package/config/kconfig-to-buildroot2.patch  2007-07-08 00:00:17 UTC (rev 19025)
@@ -667,3 +667,60 @@

        if (conf_split_config())
                return 1;
+diff -rdup x/config/confdata.c package/config/confdata.c
+--- x/config/confdata.c        2007-07-07 11:13:12.000000000 +0200
++++ package/config/confdata.c  2007-07-08 01:30:44.000000000 +0200
+@@ -11,6 +11,7 @@
+ #include <string.h>
+ #include <time.h>
+ #include <unistd.h>
++#include <libgen.h>
+
+ #define LKC_DIRECT_LINK
+ #include "lkc.h"
+@@ -529,7 +530,7 @@ int conf_write(const char *name)
+
+ int conf_split_config(void)
+ {
+-      char *name, path[128];
++      char *name, path[128], *opwd, *dir, *_name;
+       char *s, *d, c;
+       struct symbol *sym;
+       struct stat sb;
+@@ -540,8 +541,20 @@ int conf_split_config(void)
+               name = "include/config/auto.conf";
+       conf_read_simple(name, S_DEF_AUTO);
+
+-      if (chdir("include/config"))
++      opwd = malloc(256);
++      _name = strdup(name);
++      if (opwd == NULL || _name == NULL)
+               return 1;
++      opwd = getcwd(opwd, 256);
++      dir = dirname(_name);
++      if (dir == NULL) {
++              res = 1;
++              goto err;
++      }
++      if (chdir(dir)) {
++              res = 1;
++              goto err;
++      }
+
+       res = 0;
+       for_all_symbols(i, sym) {
+@@ -634,9 +647,11 @@ int conf_split_config(void)
+               close(fd);
+       }
+ out:
+-      if (chdir("../.."))
+-              return 1;
+-
++      if (chdir(opwd))
++              res = 1;
++err:
++      free(opwd);
++      free(_name);
+       return res;
+ }
+
_______________________________________________
buildroot mailing list
buildroot at uclibc.org
http://busybox.net/mailman/listinfo/buildroot

-- 
allanc at chickenandporn.com  "??" http://linkedin.com/in/goldfish
please, no proprietary attachments (http://tinyurl.com/cbgq)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help