add upx, but make it build only for ppc now
SVN-Revision: 28428
This commit is contained in:
		@@ -1,5 +1,5 @@
 | 
			
		||||
#
 | 
			
		||||
# Copyright (C) 2006-2010 OpenWrt.org
 | 
			
		||||
# Copyright (C) 2006-2011 OpenWrt.org
 | 
			
		||||
#
 | 
			
		||||
# This is free software, licensed under the GNU General Public License v2.
 | 
			
		||||
# See /LICENSE for more information.
 | 
			
		||||
@@ -18,6 +18,7 @@ tools-y += sstrip ipkg-utils genext2fs e2fsprogs mtd-utils mkimage
 | 
			
		||||
tools-y += firmware-utils patch-cmdline quilt yaffs2 flock padjffs2
 | 
			
		||||
tools-y += mm-macros xorg-macros xfce-macros missing-macros xz cmake
 | 
			
		||||
tools-$(CONFIG_TARGET_orion_generic) += wrt350nv2-builder upslug2
 | 
			
		||||
tools-$(CONFIG_powerpc) += upx
 | 
			
		||||
tools-$(CONFIG_TARGET_x86) += qemu
 | 
			
		||||
ifneq ($(CONFIG_TARGET_ar71xx),)
 | 
			
		||||
tools-y += lzma-old squashfs 
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										34
									
								
								tools/upx/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								tools/upx/Makefile
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,34 @@
 | 
			
		||||
#
 | 
			
		||||
# Copyright (C) 2011 OpenWrt.org
 | 
			
		||||
#
 | 
			
		||||
# This is free software, licensed under the GNU General Public License v2.
 | 
			
		||||
# See /LICENSE for more information.
 | 
			
		||||
#
 | 
			
		||||
include $(TOPDIR)/rules.mk
 | 
			
		||||
 | 
			
		||||
PKG_NAME:=upx
 | 
			
		||||
PKG_VERSION:=3.07
 | 
			
		||||
 | 
			
		||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-src.tar.bz2
 | 
			
		||||
PKG_SOURCE_URL:=@SF/upx
 | 
			
		||||
PKG_MD5SUM:=8186ab103288242f7e8ecad1acd4af03
 | 
			
		||||
PKG_CAT:=bzcat
 | 
			
		||||
 | 
			
		||||
HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/$(PKG_NAME)-$(PKG_VERSION)-src
 | 
			
		||||
 | 
			
		||||
include $(INCLUDE_DIR)/host-build.mk
 | 
			
		||||
 | 
			
		||||
define Host/Compile
 | 
			
		||||
	rm -f $(HOST_BUILD_DIR)/src/.depend
 | 
			
		||||
	$(MAKE) UPX_LZMADIR="$(BUILD_DIR_HOST)/lzma-4.65" -C $(HOST_BUILD_DIR)/src
 | 
			
		||||
endef
 | 
			
		||||
 | 
			
		||||
define Host/Install
 | 
			
		||||
	$(CP) $(HOST_BUILD_DIR)/src/upx.out $(STAGING_DIR_HOST)/bin/upx
 | 
			
		||||
endef
 | 
			
		||||
 | 
			
		||||
define Host/Clean
 | 
			
		||||
	rm -f $(STAGING_DIR_HOST)/bin/upx
 | 
			
		||||
endef
 | 
			
		||||
 | 
			
		||||
$(eval $(call HostBuild))
 | 
			
		||||
							
								
								
									
										156
									
								
								tools/upx/patches/100-lzmaonly.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										156
									
								
								tools/upx/patches/100-lzmaonly.patch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,156 @@
 | 
			
		||||
--- a/src/compress.cpp
 | 
			
		||||
+++ b/src/compress.cpp
 | 
			
		||||
@@ -41,7 +41,7 @@
 | 
			
		||||
     if (len == 0)
 | 
			
		||||
         return adler;
 | 
			
		||||
     assert(buf != NULL);
 | 
			
		||||
-#if 0
 | 
			
		||||
+#if !(WITH_UCL)
 | 
			
		||||
     return adler32(adler, (const Bytef *) buf, len); // zlib
 | 
			
		||||
 #elif (WITH_UCL)
 | 
			
		||||
     return ucl_adler32(adler, (const ucl_bytep) buf, len);
 | 
			
		||||
--- a/src/conf.h
 | 
			
		||||
+++ b/src/conf.h
 | 
			
		||||
@@ -179,7 +179,7 @@
 | 
			
		||||
 #  undef __unix
 | 
			
		||||
 #endif
 | 
			
		||||
 
 | 
			
		||||
-#if !defined(WITH_UCL)
 | 
			
		||||
+#if defined(WITH_UCL)
 | 
			
		||||
 #  define WITH_UCL 1
 | 
			
		||||
 #endif
 | 
			
		||||
 #if 0 && !defined(WITH_LZMA)
 | 
			
		||||
@@ -645,7 +645,11 @@
 | 
			
		||||
 };
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
+#if (WITH_UCL)
 | 
			
		||||
 struct ucl_compress_config_t : public REAL_ucl_compress_config_t
 | 
			
		||||
+#else
 | 
			
		||||
+struct ucl_compress_config_t
 | 
			
		||||
+#endif
 | 
			
		||||
 {
 | 
			
		||||
     void reset() { memset(this, 0xff, sizeof(*this)); }
 | 
			
		||||
 };
 | 
			
		||||
@@ -697,7 +701,9 @@
 | 
			
		||||
 
 | 
			
		||||
 struct ucl_compress_result_t
 | 
			
		||||
 {
 | 
			
		||||
+#if (WITH_UCL)
 | 
			
		||||
     ucl_uint result[16];
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
     void reset() { memset(this, 0, sizeof(*this)); }
 | 
			
		||||
 };
 | 
			
		||||
--- a/src/main.cpp
 | 
			
		||||
+++ b/src/main.cpp
 | 
			
		||||
@@ -618,7 +618,9 @@
 | 
			
		||||
         opt->method = -1;
 | 
			
		||||
         opt->all_filters = true;
 | 
			
		||||
         opt->filter = -1;
 | 
			
		||||
+#if (WITH_UCL)
 | 
			
		||||
         opt->crp.crp_ucl.m_size = 999999;
 | 
			
		||||
+#endif
 | 
			
		||||
         /* fallthrough */
 | 
			
		||||
     case 900:                               // --best
 | 
			
		||||
         if (!set_method(-1, 10))
 | 
			
		||||
@@ -709,6 +711,7 @@
 | 
			
		||||
         opt->exact = true;
 | 
			
		||||
         break;
 | 
			
		||||
     // compression runtime parameters
 | 
			
		||||
+#if (WITH_UCL)
 | 
			
		||||
     case 801:
 | 
			
		||||
         getoptvar(&opt->crp.crp_ucl.c_flags, 0, 3, arg);
 | 
			
		||||
         break;
 | 
			
		||||
@@ -730,6 +733,7 @@
 | 
			
		||||
     case 807:
 | 
			
		||||
         getoptvar(&opt->crp.crp_ucl.m_size, 10000u, 999999u, arg);
 | 
			
		||||
         break;
 | 
			
		||||
+#endif
 | 
			
		||||
     case 811:
 | 
			
		||||
         getoptvar(&opt->crp.crp_lzma.pos_bits, arg);
 | 
			
		||||
         break;
 | 
			
		||||
--- a/src/Makefile
 | 
			
		||||
+++ b/src/Makefile
 | 
			
		||||
@@ -57,7 +57,10 @@
 | 
			
		||||
 INCLUDES += -I$(UPX_UCLDIR)/include
 | 
			
		||||
 LIBS += $(addprefix -L,$(dir $(wildcard $(UPX_UCLDIR)/libucl$(libext) $(UPX_UCLDIR)/src/.libs/libucl$(libext))))
 | 
			
		||||
 endif
 | 
			
		||||
-LIBS += -lucl -lz
 | 
			
		||||
+ifeq ($(WITH_UCL),1)
 | 
			
		||||
+LIBS += -lucl
 | 
			
		||||
+endif
 | 
			
		||||
+LIBS += -lz
 | 
			
		||||
 # you should set envvar UPX_LZMADIR to point to your unpacked LZMA SDK
 | 
			
		||||
 include $(top_srcdir)/src/stub/src/c/Makevars.lzma
 | 
			
		||||
 ifneq ($(UPX_LZMA_VERSION),)
 | 
			
		||||
--- a/src/packer.cpp
 | 
			
		||||
+++ b/src/packer.cpp
 | 
			
		||||
@@ -199,6 +199,7 @@
 | 
			
		||||
     if (cconf_parm)
 | 
			
		||||
         cconf = *cconf_parm;
 | 
			
		||||
     // cconf options
 | 
			
		||||
+#if (WITH_UCL)
 | 
			
		||||
     if (M_IS_NRV2B(ph.method) || M_IS_NRV2D(ph.method) || M_IS_NRV2E(ph.method))
 | 
			
		||||
     {
 | 
			
		||||
         if (opt->crp.crp_ucl.c_flags != -1)
 | 
			
		||||
@@ -216,6 +217,7 @@
 | 
			
		||||
             step = 0;
 | 
			
		||||
 #endif
 | 
			
		||||
     }
 | 
			
		||||
+#endif
 | 
			
		||||
     if (M_IS_LZMA(ph.method))
 | 
			
		||||
     {
 | 
			
		||||
         oassign(cconf.conf_lzma.pos_bits, opt->crp.crp_lzma.pos_bits);
 | 
			
		||||
@@ -250,6 +252,7 @@
 | 
			
		||||
     if (r != UPX_E_OK)
 | 
			
		||||
         throwInternalError("compression failed");
 | 
			
		||||
 
 | 
			
		||||
+#if (WITH_UCL)
 | 
			
		||||
     if (M_IS_NRV2B(ph.method) || M_IS_NRV2D(ph.method) || M_IS_NRV2E(ph.method))
 | 
			
		||||
     {
 | 
			
		||||
         const ucl_uint *res = ph.compress_result.result_ucl.result;
 | 
			
		||||
@@ -267,6 +270,7 @@
 | 
			
		||||
             assert(cconf.conf_ucl.max_match == 0 || cconf.conf_ucl.max_match >= ph.max_match_found);
 | 
			
		||||
         }
 | 
			
		||||
     }
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
     //printf("\nPacker::compress: %d/%d: %7d -> %7d\n", ph.method, ph.level, ph.u_len, ph.c_len);
 | 
			
		||||
     if (!checkCompressionRatio(ph.u_len, ph.c_len))
 | 
			
		||||
--- a/src/p_exe.cpp
 | 
			
		||||
+++ b/src/p_exe.cpp
 | 
			
		||||
@@ -506,7 +506,9 @@
 | 
			
		||||
     Filter ft(ph.level);
 | 
			
		||||
     // compress (max_match = 8192)
 | 
			
		||||
     upx_compress_config_t cconf; cconf.reset();
 | 
			
		||||
+#if (WITH_UCL)
 | 
			
		||||
     cconf.conf_ucl.max_match = MAXMATCH;
 | 
			
		||||
+#endif
 | 
			
		||||
     cconf.conf_lzma.max_num_probs = 1846 + (768 << 4); // ushort: ~28 KiB stack
 | 
			
		||||
     compressWithFilters(&ft, 32, &cconf);
 | 
			
		||||
 
 | 
			
		||||
--- a/src/p_ps1.cpp
 | 
			
		||||
+++ b/src/p_ps1.cpp
 | 
			
		||||
@@ -499,7 +499,9 @@
 | 
			
		||||
 
 | 
			
		||||
     // compress (max_match = 65535)
 | 
			
		||||
     upx_compress_config_t cconf; cconf.reset();
 | 
			
		||||
+#if (WITH_UCL)
 | 
			
		||||
     cconf.conf_ucl.max_match = 65535;
 | 
			
		||||
+#endif
 | 
			
		||||
     cconf.conf_lzma.max_num_probs = 1846 + (768 << 4); // ushort: ~28 KiB stack
 | 
			
		||||
     compressWithFilters(&ft, sa_cnt, &cconf);
 | 
			
		||||
 
 | 
			
		||||
--- a/src/p_tos.cpp
 | 
			
		||||
+++ b/src/p_tos.cpp
 | 
			
		||||
@@ -506,7 +506,9 @@
 | 
			
		||||
     Filter ft(ph.level);
 | 
			
		||||
     // compress (max_match = 65535)
 | 
			
		||||
     upx_compress_config_t cconf; cconf.reset();
 | 
			
		||||
+#if (WITH_UCL)
 | 
			
		||||
     cconf.conf_ucl.max_match = 65535;
 | 
			
		||||
+#endif
 | 
			
		||||
     cconf.conf_lzma.max_num_probs = 1846 + (768 << 4); // ushort: ~28 KiB stack
 | 
			
		||||
     compressWithFilters(&ft, 512, &cconf);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user