From 3dbd47c63efb5ad97c44eb49997b31b286be9abd Mon Sep 17 00:00:00 2001 From: short <> Date: Tue, 14 Oct 2003 18:58:18 +0000 Subject: [PATCH] +libtool --- configure.ac | 1 + project/Makefile.am | 3 +- project/libtool/Index.html.pl | 65 +++++++++++++++++++++++++++++++++++++++++ project/libtool/ListItem.pm | 46 +++++++++++++++++++++++++++++ project/libtool/Makefile.am | 23 +++++++++++++++ project/pgsqlsubstr/ListItem.pm | 2 +- project/phphash/ListItem.pm | 2 +- 7 files changed, 139 insertions(+), 3 deletions(-) create mode 100755 project/libtool/Index.html.pl create mode 100755 project/libtool/ListItem.pm create mode 100644 project/libtool/Makefile.am diff --git a/configure.ac b/configure.ac index 533499c..c003d6e 100644 --- a/configure.ac +++ b/configure.ac @@ -96,6 +96,7 @@ Makefile ./project/MyWeb/Makefile ./project/pgsqlsubstr/Makefile ./project/int13sniff/Makefile +./project/libtool/Makefile ]) echo done. diff --git a/project/Makefile.am b/project/Makefile.am index dc6a979..c6e3047 100644 --- a/project/Makefile.am +++ b/project/Makefile.am @@ -78,7 +78,8 @@ SUBDIRS= \ energie \ MyWeb \ pgsqlsubstr \ - int13sniff + int13sniff \ + libtool EXTRA_DIST+= \ Index.html.pl \ diff --git a/project/libtool/Index.html.pl b/project/libtool/Index.html.pl new file mode 100755 index 0000000..641b135 --- /dev/null +++ b/project/libtool/Index.html.pl @@ -0,0 +1,65 @@ +#! /usr/bin/perl +# +# $Id$ +# Main page of 'My::Project::libtool' +# Copyright (C) 2003 Jan Kratochvil +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; exactly version 2 of June 1991 is required +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +package project::libtool::Index; +require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway +our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; +our $CVS_ID=q$Id$; +use strict; +use warnings; + +BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,)[0]]}; eval "use lib '$top_dir'"; close F; } +use My::Web; +Wuse 'My::Project'; +Wuse 'project::libtool::ListItem'; + + +My::Project->init_project( + "__PACKAGE__"=>__PACKAGE__, + "ListItem"=>\@project::libtool::ListItem::ListItem, + ); + + +print <<"HERE"; +

When you include convenience library (.a) containing two conflicting name +objects (same basename from two different directories) only one of those two +object files will survive in ".libs/libA.lax/" arena:

+
+	rm -fr .libs/libA.lax/libB.a
+	mkdir .libs/libA.lax/libB.a
+	(cd .libs/libA.lax/libB.a && ar x /abs/path/to/A/B/.libs/libB.a)
+
+ +

The patch implements automatic renaming of "*.*" to "*-@{[ '$' ]}seqnum.*" +in such case:

+
+	libtool: link: warning: object name conflicts; renaming object files
+	libtool: link: warning: to ensure that they will not overwrite
+	(cd .libs/libA.lax/libB.a && ar xN 1 /abs/path/to/A/B/.libs/libB.a 'XconflictX.o' && mv -f 'XconflictX.o' 'XconflictX-1.o')
+	(cd .libs/libA.lax/libB.a && ar xN 2 /abs/path/to/A/B/.libs/libB.a 'XconflictX.o' && mv -f 'XconflictX.o' 'XconflictX-2.o')
+
+ +

Although renaming to a new name may be confusing IMO there is no better option. +The original (conflicting) name is not left there in any instance to prevent +misleading confusion of different object file found than expected.

+HERE + + +My::Web->footer(); diff --git a/project/libtool/ListItem.pm b/project/libtool/ListItem.pm new file mode 100755 index 0000000..88c0558 --- /dev/null +++ b/project/libtool/ListItem.pm @@ -0,0 +1,46 @@ +#! /usr/bin/perl +# +# $Id$ +# Definition of 'My::Project::libtool' for list.cgi.pl +# Copyright (C) 2003 Jan Kratochvil +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; exactly version 2 of June 1991 is required +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +package project::libtool::ListItem; +require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway +our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; +our $CVS_ID=q$Id$; +use strict; +use warnings; + +use My::Web; + + +our @ListItem=( + "name"=>a_href('http://www.gnu.org/software/libtool/libtool.html','GNU Libtool').' fix', + "platform"=>"patch", + "priority"=>7, + "summary"=>'Handle duplicate object file names', + "download-patch"=>'http://savannah.gnu.org/cgi-bin/cvsweb/libtool/ltmain.in.diff?r1=1.320&r2=1.321', + "license"=>"GPL", + "maintenance"=>"accepted", + "language"=>"sh patch", + "description"=><<"HERE", +

Patch fixis linking of convenience libraries (.a) containing two +conflicting name objects.

+HERE + ); + +1; diff --git a/project/libtool/Makefile.am b/project/libtool/Makefile.am new file mode 100644 index 0000000..58fc29f --- /dev/null +++ b/project/libtool/Makefile.am @@ -0,0 +1,23 @@ +# $Id$ +# automake source for the Makefile of project/libtool/ subdir +# Copyright (C) 2003 Jan Kratochvil +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; exactly version 2 of June 1991 is required +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +include $(top_srcdir)/Makefile-head.am + +EXTRA_DIST+= \ + ListItem.pm \ + Index.html.pl diff --git a/project/pgsqlsubstr/ListItem.pm b/project/pgsqlsubstr/ListItem.pm index ebbc18f..29ca16b 100755 --- a/project/pgsqlsubstr/ListItem.pm +++ b/project/pgsqlsubstr/ListItem.pm @@ -29,7 +29,7 @@ use My::Web; our @ListItem=( - "name"=>'PostgreSQL-6.3 fix', + "name"=>a_href('http://www.postgresql.org/','PostgreSQL').'-6.3 fix', "platform"=>"patch", "priority"=>3, "icon"=>"postgresql", diff --git a/project/phphash/ListItem.pm b/project/phphash/ListItem.pm index d676adf..e6f2556 100755 --- a/project/phphash/ListItem.pm +++ b/project/phphash/ListItem.pm @@ -29,7 +29,7 @@ use My::Web; our @ListItem=( - "name"=>'PHP-3.0b6 fix', + "name"=>a_href('http://www.php.net/','PHP').'-3.0b6 fix', "platform"=>"patch", "priority"=>3, "icon"=>"php", -- 1.8.3.1