mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-03 22:44:27 -05:00 
			
		
		
		
	toolchain: add fortify-headers, enable FORTIFY_SOURCE by default
Signed-off-by: Steven Barth <steven@midlink.org> SVN-Revision: 46117
This commit is contained in:
		
							parent
							
								
									2086f7284c
								
							
						
					
					
						commit
						2738526a16
					
				@ -251,6 +251,7 @@ menu "Global build settings"
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	choice
 | 
						choice
 | 
				
			||||||
		prompt "Enable buffer-overflows detection (FORTIFY_SOURCE)"
 | 
							prompt "Enable buffer-overflows detection (FORTIFY_SOURCE)"
 | 
				
			||||||
 | 
							default PKG_FORTIFY_SOURCE_1
 | 
				
			||||||
		help
 | 
							help
 | 
				
			||||||
		  Enable the _FORTIFY_SOURCE macro which introduces additional
 | 
							  Enable the _FORTIFY_SOURCE macro which introduces additional
 | 
				
			||||||
		  checks to detect buffer-overflows in the following standard library
 | 
							  checks to detect buffer-overflows in the following standard library
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										2
									
								
								rules.mk
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								rules.mk
									
									
									
									
									
								
							@ -144,7 +144,7 @@ ifndef DUMP
 | 
				
			|||||||
    export GCC_HONOUR_COPTS:=0
 | 
					    export GCC_HONOUR_COPTS:=0
 | 
				
			||||||
    TARGET_CROSS:=$(if $(TARGET_CROSS),$(TARGET_CROSS),$(OPTIMIZE_FOR_CPU)-openwrt-linux$(if $(TARGET_SUFFIX),-$(TARGET_SUFFIX))-)
 | 
					    TARGET_CROSS:=$(if $(TARGET_CROSS),$(TARGET_CROSS),$(OPTIMIZE_FOR_CPU)-openwrt-linux$(if $(TARGET_SUFFIX),-$(TARGET_SUFFIX))-)
 | 
				
			||||||
    TARGET_CFLAGS+= -fhonour-copts $(if $(CONFIG_GCC_VERSION_4_4)$(CONFIG_GCC_VERSION_4_5),,-Wno-error=unused-but-set-variable)
 | 
					    TARGET_CFLAGS+= -fhonour-copts $(if $(CONFIG_GCC_VERSION_4_4)$(CONFIG_GCC_VERSION_4_5),,-Wno-error=unused-but-set-variable)
 | 
				
			||||||
    TARGET_CPPFLAGS+= -I$(TOOLCHAIN_DIR)/usr/include -I$(TOOLCHAIN_DIR)/include
 | 
					    TARGET_CPPFLAGS+= -I$(TOOLCHAIN_DIR)/usr/include -I$(TOOLCHAIN_DIR)/include/fortify -I$(TOOLCHAIN_DIR)/include
 | 
				
			||||||
    TARGET_LDFLAGS+= -L$(TOOLCHAIN_DIR)/usr/lib -L$(TOOLCHAIN_DIR)/lib
 | 
					    TARGET_LDFLAGS+= -L$(TOOLCHAIN_DIR)/usr/lib -L$(TOOLCHAIN_DIR)/lib
 | 
				
			||||||
    TARGET_PATH:=$(TOOLCHAIN_DIR)/bin:$(TARGET_PATH)
 | 
					    TARGET_PATH:=$(TOOLCHAIN_DIR)/bin:$(TARGET_PATH)
 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
 | 
				
			|||||||
@ -28,7 +28,7 @@
 | 
				
			|||||||
curdir:=toolchain
 | 
					curdir:=toolchain
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# subdirectories to descend into
 | 
					# subdirectories to descend into
 | 
				
			||||||
$(curdir)/builddirs := $(if $(CONFIG_GDB),gdb) $(if $(CONFIG_INSIGHT),insight) $(if $(CONFIG_EXTERNAL_TOOLCHAIN),wrapper,kernel-headers binutils gcc/minimal gcc/initial gcc/final $(LIBC)/headers $(LIBC))
 | 
					$(curdir)/builddirs := $(if $(CONFIG_GDB),gdb) $(if $(CONFIG_INSIGHT),insight) $(if $(CONFIG_EXTERNAL_TOOLCHAIN),wrapper,kernel-headers binutils gcc/minimal gcc/initial gcc/final $(LIBC)/headers $(LIBC) fortify-headers)
 | 
				
			||||||
ifdef CONFIG_USE_UCLIBC
 | 
					ifdef CONFIG_USE_UCLIBC
 | 
				
			||||||
  $(curdir)/builddirs += $(LIBC)/utils
 | 
					  $(curdir)/builddirs += $(LIBC)/utils
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										28
									
								
								toolchain/fortify-headers/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								toolchain/fortify-headers/Makefile
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,28 @@
 | 
				
			|||||||
 | 
					#
 | 
				
			||||||
 | 
					# Copyright (C) 2015 OpenWrt.org
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# This is free software, licensed under the GNU General Public License v2.
 | 
				
			||||||
 | 
					# See /LICENSE for more information.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					include $(TOPDIR)/rules.mk
 | 
				
			||||||
 | 
					include $(INCLUDE_DIR)/target.mk
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PKG_NAME:=fortify-headers
 | 
				
			||||||
 | 
					PKG_VERSION:=0.6
 | 
				
			||||||
 | 
					PKG_RELEASE=1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PKG_SOURCE_URL:=http://dl.2f30.org/releases
 | 
				
			||||||
 | 
					PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 | 
				
			||||||
 | 
					PKG_MD5SUM:=d85072939ec02a40af282fe3febc6c18
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(INCLUDE_DIR)/toolchain-build.mk
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					define Host/Compile
 | 
				
			||||||
 | 
						true
 | 
				
			||||||
 | 
					endef
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					define Host/Install
 | 
				
			||||||
 | 
						$(MAKE) -C $(HOST_BUILD_DIR) PREFIX="" DESTDIR="$(TOOLCHAIN_DIR)" install
 | 
				
			||||||
 | 
					endef
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$(eval $(call HostBuild))
 | 
				
			||||||
							
								
								
									
										26
									
								
								toolchain/fortify-headers/patches/100-fix-getgroups.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								toolchain/fortify-headers/patches/100-fix-getgroups.patch
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,26 @@
 | 
				
			|||||||
 | 
					From 1f9848efc8a329cb9a13323cbb94b353d39802c1 Mon Sep 17 00:00:00 2001
 | 
				
			||||||
 | 
					From: Steven Barth <steven@midlink.org>
 | 
				
			||||||
 | 
					Date: Mon, 22 Jun 2015 14:36:16 +0200
 | 
				
			||||||
 | 
					Subject: [PATCH] unistd: fix signed / unsigned comparison in getgroups
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Signed-off-by: Steven Barth <steven@midlink.org>
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					 include/unistd.h | 2 +-
 | 
				
			||||||
 | 
					 1 file changed, 1 insertion(+), 1 deletion(-)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					diff --git a/include/unistd.h b/include/unistd.h
 | 
				
			||||||
 | 
					index 45304e1..5274e22 100644
 | 
				
			||||||
 | 
					--- a/include/unistd.h
 | 
				
			||||||
 | 
					+++ b/include/unistd.h
 | 
				
			||||||
 | 
					@@ -71,7 +71,7 @@ _FORTIFY_FN(getgroups) int getgroups(int __l, gid_t *__s)
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					 	size_t __b = __builtin_object_size(__s, 0);
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					-	if (__l > __b / sizeof(gid_t))
 | 
				
			||||||
 | 
					+	if (__l < 0 || (size_t)__l > __b / sizeof(gid_t))
 | 
				
			||||||
 | 
					 		__builtin_trap();
 | 
				
			||||||
 | 
					 	return __orig_getgroups(__l, __s);
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					-- 
 | 
				
			||||||
 | 
					2.1.4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user