From 7226842ea8250a2f262298b6386c62353c1a8ff9 Mon Sep 17 00:00:00 2001 From: thepeople Date: Fri, 5 Mar 2010 20:27:58 +0000 Subject: [PATCH] this patch fixes uboot-envtools so that it is no longer broken. -Raphael git-svn-id: svn://svn.openwrt.org/openwrt/trunk@19999 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/uboot-envtools/Makefile | 10 +- .../patches/001-crc32_func_signature.patch | 124 +++++++++++++++++- .../uboot-envtools/patches/002-makefile.patch | 15 ++- 3 files changed, 132 insertions(+), 17 deletions(-) diff --git a/package/uboot-envtools/Makefile b/package/uboot-envtools/Makefile index 1e77c4335..f602ffeb2 100644 --- a/package/uboot-envtools/Makefile +++ b/package/uboot-envtools/Makefile @@ -1,5 +1,5 @@ -# -# Copyright (C) 2009 OpenWrt.org +# +# Copyright (C) 2006-2010 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=uboot-envtools PKG_VERSION:=20081215 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).orig.tar.gz PKG_SOURCE_URL:=http://ftp.de.debian.org/debian/pool/main/u/uboot-envtools/ @@ -19,8 +19,8 @@ include $(INCLUDE_DIR)/package.mk define Package/uboot-envtools SECTION:=utils CATEGORY:=Utilities - DEPENDS:=@BROKEN TITLE:=read/modify the environment for the bootloader U-Boot + DEPENDS:=+zlib endef define Package/uboot-envtools/description @@ -29,7 +29,7 @@ endef define Package/uboot-envtools/install $(INSTALL_DIR) $(1)/usr/sbin $(INSTALL_BIN) $(PKG_BUILD_DIR)/fw_printenv $(1)/usr/sbin/ - ln -s fw_printenv $(1)/usr/sbin/fw_setenv + ln -sf fw_printenv $(1)/usr/sbin/fw_setenv endef $(eval $(call BuildPackage,uboot-envtools)) diff --git a/package/uboot-envtools/patches/001-crc32_func_signature.patch b/package/uboot-envtools/patches/001-crc32_func_signature.patch index 9f9a2b223..9298cbda3 100644 --- a/package/uboot-envtools/patches/001-crc32_func_signature.patch +++ b/package/uboot-envtools/patches/001-crc32_func_signature.patch @@ -1,13 +1,125 @@ -Index: uboot-envtools-20080520/crc32.c -=================================================================== ---- uboot-envtools-20080520.orig/crc32.c 2008-08-03 16:02:43.000000000 +0200 -+++ uboot-envtools-20080520/crc32.c 2008-08-03 16:03:25.000000000 +0200 -@@ -154,7 +154,7 @@ +--- a/crc32.c ++++ b/crc32.c +@@ -8,11 +8,7 @@ + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +-#ifndef USE_HOSTCC /* Shut down "ANSI does not permit..." warnings */ +-#include +-#else + #include +-#endif + + #if defined(CONFIG_HW_WATCHDOG) || defined(CONFIG_WATCHDOG) + #include +@@ -136,7 +132,7 @@ local const uint32_t crc_table[256] = { + + #if 0 + /* ========================================================================= +- * This function can be used by asm versions of crc32() ++ * This function can be used by asm versions of uboot_crc32() + */ + const uint32_t * ZEXPORT get_crc_table() + { +@@ -154,7 +150,7 @@ const uint32_t * ZEXPORT get_crc_table() #define DO8(buf) DO4(buf); DO4(buf); /* ========================================================================= */ -uint32_t ZEXPORT crc32 (uint32_t crc, const Bytef *buf, uInt len) -+uLong ZEXPORT crc32 (uLong crc, const Bytef *buf, uInt len) ++uint32_t ZEXPORT uboot_crc32 (uint32_t crc, const Bytef *buf, uInt len) { #ifdef DYNAMIC_CRC_TABLE if (crc_table_empty) +@@ -217,12 +213,12 @@ uint32_t ZEXPORT crc32_wd (uint32_t crc, + chunk = end - curr; + if (chunk > chunk_sz) + chunk = chunk_sz; +- crc = crc32 (crc, curr, chunk); ++ crc = uboot_crc32 (crc, curr, chunk); + curr += chunk; + WATCHDOG_RESET (); + } + #else +- crc = crc32 (crc, buf, len); ++ crc = uboot_crc32 (crc, buf, len); + #endif + + return crc; +--- a/fw_env.c ++++ b/fw_env.c +@@ -216,9 +216,9 @@ static int parse_config (void); + #if defined(CONFIG_FILE) + static int get_config (char *); + #endif +-static inline ulong getenvsize (void) ++static inline uint32_t getenvsize (void) + { +- ulong rc = CONFIG_ENV_SIZE - sizeof (long); ++ uint32_t rc = CONFIG_ENV_SIZE - sizeof (uint32_t); + + if (HaveRedundEnv) + rc -= sizeof (char); +@@ -437,7 +437,7 @@ int fw_setenv (int argc, char *argv[]) + /* + * Update CRC + */ +- *environment.crc = crc32 (0, (uint8_t *) environment.data, ENV_SIZE); ++ *environment.crc = uboot_crc32 (0, (uint8_t *) environment.data, ENV_SIZE); + + /* write environment back to flash */ + if (flash_io (O_RDWR)) { +@@ -627,7 +627,7 @@ static int flash_write_buf (int dev, int + data = malloc (erase_len); + if (!data) { + fprintf (stderr, +- "Cannot malloc %u bytes: %s\n", ++ "Cannot malloc %zu bytes: %s\n", + erase_len, strerror (errno)); + return -1; + } +@@ -883,11 +883,11 @@ static char *envmatch (char * s1, char * + static int env_init (void) + { + int crc0, crc0_ok; +- char flag0; ++ unsigned char flag0; + void *addr0; + + int crc1, crc1_ok; +- char flag1; ++ unsigned char flag1; + void *addr1; + + struct env_image_single *single; +@@ -923,7 +923,7 @@ static int env_init (void) + if (flash_io (O_RDONLY)) + return -1; + +- crc0 = crc32 (0, (uint8_t *) environment.data, ENV_SIZE); ++ crc0 = uboot_crc32 (0, (uint8_t *) environment.data, ENV_SIZE); + crc0_ok = (crc0 == *environment.crc); + if (!HaveRedundEnv) { + if (!crc0_ok) { +@@ -964,7 +964,7 @@ static int env_init (void) + return -1; + } + +- crc1 = crc32 (0, (uint8_t *) redundant->data, ENV_SIZE); ++ crc1 = uboot_crc32 (0, (uint8_t *) redundant->data, ENV_SIZE); + crc1_ok = (crc1 == redundant->crc); + flag1 = redundant->flags; + +--- a/fw_env.h ++++ b/fw_env.h +@@ -47,8 +47,10 @@ + "ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off; " \ + "bootm" + ++# include ++ + extern int fw_printenv(int argc, char *argv[]); + extern char *fw_getenv (char *name); + extern int fw_setenv (int argc, char *argv[]); + +-extern unsigned long crc32 (unsigned long, const unsigned char *, unsigned); ++extern uint32_t uboot_crc32 (uint32_t, const unsigned char *, unsigned); diff --git a/package/uboot-envtools/patches/002-makefile.patch b/package/uboot-envtools/patches/002-makefile.patch index 6086611e1..9dd8d82a6 100644 --- a/package/uboot-envtools/patches/002-makefile.patch +++ b/package/uboot-envtools/patches/002-makefile.patch @@ -1,7 +1,5 @@ -Index: uboot-envtools-20080520/Makefile -=================================================================== ---- uboot-envtools-20080520.orig/Makefile 2008-08-03 15:50:27.000000000 +0200 -+++ uboot-envtools-20080520/Makefile 2008-08-03 15:51:59.000000000 +0200 +--- a/Makefile ++++ b/Makefile @@ -21,12 +21,10 @@ # MA 02111-1307 USA # @@ -12,11 +10,16 @@ Index: uboot-envtools-20080520/Makefile HEADERS := fw_env.h -CPPFLAGS := -Wall -DUSE_HOSTCC -I$(SRCTREE)/include -+CPPFLAGS := -Wall -DUSE_HOSTCC -I/usr/include ++CPPFLAGS := -Wall $(CFLAGS) ifeq ($(MTD_VERSION),old) CPPFLAGS += -DMTD_OLD -@@ -39,14 +37,3 @@ +@@ -35,18 +33,7 @@ endif + all: $(obj)fw_printenv + + $(obj)fw_printenv: $(SRCS) $(HEADERS) +- $(CROSS_COMPILE)gcc $(CPPFLAGS) $(SRCS) -o $(obj)fw_printenv ++ $(CC) $(CPPFLAGS) $(SRCS) -o $(obj)fw_printenv clean: rm -f $(obj)fw_printenv $(obj)crc32.c