[Buildroot] r19025 breaks non-libintl.h

Allan Clark allanc at chickenandporn.com
Mon Jul 9 14:26:24 UTC 2007


(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 <aldot at uclibc.org> wrote:
> 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)


More information about the buildroot mailing list