Blob Blame History Raw
2009-08-24  Stepan Kasal  <skasal@redhat.com>

perl-Wx did not run if wxGTK-devel was not installed.

The problem was that the package containes list of dynamic libraries
to open, and that it had the *.so links, that are normally used by ld
only, not by the dynamic linker.  Consequently, these links go to the
devel subpackage in every sane distro.

soname can be displayed by objdump or eu-readelf.  But first, we need
the full path name; for standard paths, gcc can help.

2009-08-24  Stepan Kasal  <skasal@redhat.com>

	* inc/My/Build/Any_wx_config_Bakefile.pm: convert the lib*.so
	file name to the canonical soname.

--- Alien-wxWidgets-0.44/inc/My/Build/Any_wx_config_Bakefile.pm.soname	2009-08-09 13:13:40.000000000 +0200
+++ Alien-wxWidgets-0.44/inc/My/Build/Any_wx_config_Bakefile.pm	2009-08-24 15:44:10.000000000 +0200
@@ -35,7 +35,14 @@
                               && $lib =~ m/(?:gtk2?|mac)[ud]{0,2}-/;
         my $dll = "lib${name}." . $self->awx_dlext;
 
-        $data{dlls}{$key} = { dll  => $dll,
+	my $dll_path = `gcc -print-file-name=$dll`;
+	chomp $dll_path;
+	my $dll_soname = 'not_found';
+	if ( -r "$dll_path" && `objdump -p $dll_path` =~ m/^\s+SONAME\s+(\S+)/m) {
+		$dll_soname = $1;
+	}
+
+        $data{dlls}{$key} = { dll  => $dll_soname,
                               link => $lib };
     }
     if( $self->awx_is_monolithic ) {