rpms/abicheck/FC-3 abicheck-1.2-fortify-source-fc3.patch, NONE, 1.1 abicheck-1.2-ldlinux.patch, NONE, 1.1 abicheck-1.2-libgcc.patch, NONE, 1.1 abicheck.spec, 1.7, 1.8 abicheck.dbfile.FORTIFY_SOURCE, 1.1, NONE

Michael Schwendt (mschwendt) fedora-extras-commits at redhat.com
Wed Aug 17 00:33:51 UTC 2005


Author: mschwendt

Update of /cvs/extras/rpms/abicheck/FC-3
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv8806

Modified Files:
	abicheck.spec 
Added Files:
	abicheck-1.2-fortify-source-fc3.patch 
	abicheck-1.2-ldlinux.patch abicheck-1.2-libgcc.patch 
Removed Files:
	abicheck.dbfile.FORTIFY_SOURCE 
Log Message:
* Tue Aug 16 2005 Michael Schwendt <mschwendt[AT]users.sf.net> - 1.2-3.2.fc3
- Patch abicheck to run dynamic linker directly instead of
  using ldd and receiving its intermixed lines.
- Add libgcc symbols.
- Add more _FORTIFY_SOURCE symbols.
- Override symbol classification by default.


abicheck-1.2-fortify-source-fc3.patch:

--- NEW FILE abicheck-1.2-fortify-source-fc3.patch ---
diff -Nur abicheck-1.2-orig/abicheck.pl abicheck-1.2/abicheck.pl
--- abicheck-1.2-orig/abicheck.pl	2003-08-26 21:57:51.000000000 +0200
+++ abicheck-1.2/abicheck.pl	2005-08-17 02:13:04.000000000 +0200
@@ -3538,5 +3538,31 @@
 			libnsl.so.1:readColdStartFile
 			libnsl.so.1:writeColdStartFile
 		);
+
+		#
+		# These are _FORTIFY_SOURCE symbols.
+		#
+		push(@{$public}, qw(
+			libc.so.6:__chk_fail
+			libc.so.6:__fprintf_chk
+			libc.so.6:__gets_chk
+			libc.so.6:__memcpy_chk
+			libc.so.6:__memmove_chk
+			libc.so.6:__mempcpy_chk
+			libc.so.6:__memset_chk
+			libc.so.6:__printf_chk
+			libc.so.6:__snprintf_chk
+			libc.so.6:__sprintf_chk
+			libc.so.6:__stpcpy_chk
+			libc.so.6:__strcat_chk
+			libc.so.6:__strcpy_chk
+			libc.so.6:__strncat_chk
+			libc.so.6:__strncpy_chk
+			libc.so.6:__vfprintf_chk
+			libc.so.6:__vprintf_chk
+			libc.so.6:__vsnprintf_chk
+			libc.so.6:__vsprintf_chk
+			)
+		);
 	}
 }

abicheck-1.2-ldlinux.patch:

--- NEW FILE abicheck-1.2-ldlinux.patch ---
diff -Nur abicheck-1.2-orig/abicheck.pl abicheck-1.2/abicheck.pl
--- abicheck-1.2-orig/abicheck.pl	2003-08-26 21:57:51.000000000 +0200
+++ abicheck-1.2/abicheck.pl	2005-08-16 22:49:06.000000000 +0200
@@ -496,7 +496,7 @@
 
 	if ( ! $pid ) {
 		# child here, go run ldd -r with debug env:
-		exec_ldd($file);
+		exec_ldd($file,$file0);
 		exit 1;
 	}
 	
@@ -1241,7 +1241,7 @@
 # will read command output.
 #
 sub exec_ldd {
-	my ($file) = @_;
+	my ($file,$file0) = @_;
 
 	open(STDERR, ">&STDOUT");
 	# need to close stdin on linux for some suid programs e.g. chsh (!)
@@ -1251,10 +1251,27 @@
 		$ENV{LD_LIBRARY_PATH} = $ld_path;
 	}
 
-	# currently, no difference between OSs
-	$ENV{LD_DEBUG} = "files,bindings";
-	exec 'ldd', '-r', $file;
-	exit 1;	# exec failed
+	my $ldlinux = '';
+	open(DLFIND,"ldd $file0 |") or die "open: ldd: $!";
+	while (<DLFIND>) {
+	    /ld-linux/ and /(\S+)/ and $ldlinux = $1;
+	}
+	close(DLFIND);
+	if ( $ldlinux =~ /^$/ ) {
+	    # currently, no difference between OSs
+	    $ENV{LD_DEBUG} = "files,bindings";
+	    exec 'ldd', '-r', $file;
+	    exit 1;	# exec failed
+	}
+	else {
+	    $ENV{LD_DEBUG} = "files,bindings";
+	    $ENV{LD_VERBOSE} = "yes";
+	    $ENV{LD_WARN} = "yes";
+	    $ENV{LD_BIND_NOW} = "yes";
+	    $ENV{LD_TRACE_LOADED_OBJECTS} = "1";
+	    exec $ldlinux, $file0;
+	    exit 1;	# exec failed
+	}
 }
 
 #

abicheck-1.2-libgcc.patch:

--- NEW FILE abicheck-1.2-libgcc.patch ---
diff -Nur abicheck-1.2-orig/abicheck.pl abicheck-1.2/abicheck.pl
--- abicheck-1.2-orig/abicheck.pl	2003-08-26 21:57:51.000000000 +0200
+++ abicheck-1.2/abicheck.pl	2005-08-15 21:10:15.000000000 +0200
@@ -3498,6 +3498,19 @@
 			libc.so.6:__ctype_b_loc
 			libc.so.6:__ctype_tolower_loc
 			libc.so.6:__ctype_toupper_loc
+
+			libgcc_s.so.1:__divdi3
+			libgcc_s.so.1:__register_frame
+			libgcc_s.so.1:__frame_state_for
+			libgcc_s.so.1:__umoddi3
+			libgcc_s.so.1:__udivdi3
+			libgcc_s.so.1:__register_frame_table
+			libgcc_s.so.1:__deregister_frame_info
+			libgcc_s.so.1:__deregister_frame
+			libgcc_s.so.1:__cxa_finalize
+			libgcc_s.so.1:__moddi3
+			libgcc_s.so.1:__register_frame_info_table
+			libgcc_s.so.1:__register_frame_info
 		);
 
 		@{$private} = qw(


Index: abicheck.spec
===================================================================
RCS file: /cvs/extras/rpms/abicheck/FC-3/abicheck.spec,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- abicheck.spec	13 Aug 2005 21:28:33 -0000	1.7
+++ abicheck.spec	17 Aug 2005 00:33:49 -0000	1.8
@@ -3,15 +3,17 @@
 Summary: 	ABI checking tool
 Name: 		abicheck
 Version: 	1.2
-Release: 	3.1
+Release: 	3.2.fc3
 License: 	LGPL
 Group: 		Applications/File
 URL: 		http://abicheck.sourceforge.net/
 Source0: 	http://dl.sf.net/abicheck/%{name}-%{version}.tar.gz
-Source1:	abicheck.dbfile.FORTIFY_SOURCE
 Patch0:		abicheck-1.2-fc3.patch
 Patch1:		abicheck-1.2-test-static.patch
-BuildRoot: 	%{_tmppath}/%{name}-%{version}-%{release}-buildroot
+Patch3:		abicheck-1.2-libgcc.patch
+Patch4:		abicheck-1.2-fortify-source-fc3.patch
+Patch5:		abicheck-1.2-ldlinux.patch
+BuildRoot: 	%{_tmppath}/%{name}-%{version}-%{release}-buildroot-%(%{__id_u} -n)
 Requires:	binutils perl
 
 
@@ -25,12 +27,14 @@
 %setup -q
 %patch -p1 -b .fc3
 %patch1 -p1 -b .test-static
+%patch3 -p1 -b .libgcc
+%patch4 -p1 -b .fortify-source-fc5
+%patch5 -p1 -b .ldlinux
 sed -i -e 's!/usr/lib/!%{_libdir}/!g' test/Makefile
 
 
 %build
 make
-make test
 
 
 %install
@@ -38,7 +42,10 @@
 mkdir -p $RPM_BUILD_ROOT%{_bindir} $RPM_BUILD_ROOT%{_mandir}/man1
 install -p -m 0755 abicheck $RPM_BUILD_ROOT%{_bindir}
 install -p -m 0644 abicheck.1 $RPM_BUILD_ROOT%{_mandir}/man1
-install -p -m 0644 %{SOURCE1} dbfile.FORTIFY_SOURCE
+
+
+%check
+make test
 
 
 %clean
@@ -48,12 +55,18 @@
 %files
 %defattr(-,root,root,-)
 %doc COPYING ChangeLog INTRO README
-%doc dbfile.FORTIFY_SOURCE
 %{_bindir}/abicheck
 %{_mandir}/man1/abicheck.1*
 
 
 %changelog
+* Tue Aug 16 2005 Michael Schwendt <mschwendt[AT]users.sf.net> - 1.2-3.2.fc3
+- Patch abicheck to run dynamic linker directly instead of
+  using ldd and receiving its intermixed lines.
+- Add libgcc symbols.
+- Add more _FORTIFY_SOURCE symbols.
+- Override symbol classification by default.
+
 * Thu Aug 11 2005 Michael Schwendt <mschwendt[AT]users.sf.net> - 1.2-3.1
 - Add an override file in %%doc which can be specified with
   option -O to modify the symbol classification for binaries


--- abicheck.dbfile.FORTIFY_SOURCE DELETED ---




More information about the scm-commits mailing list