[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-optimize
Subject: Re: [PATCH] libkdeinit symbol pruning
From: Karl Vogel <karl.vogel () seagha ! com>
Date: 2004-07-18 23:06:47
Message-ID: 200407190106.47486.karl.vogel () seagha ! com
[Download RAW message or body]
David Faure wrote:
> On Sunday 18 July 2004 16:25, Karl Vogel wrote:
> > - appendLines("libkdeinit_${kdeinit}_la_LDFLAGS =
> > -no-undefined -avoid-version \$(all_libraries)\n");
> > + appendLines("libkdeinit_${kdeinit}_la_LDFLAGS =
> > -Wl,--version-script=\$(top_srcdir)/admin/kdeinit.map -no-undefined
> > -avoid-version \$(all_libraries)\n");
>
> Looking at kdelibs/kjs/Makefile.am, I think this should read
>
> if include_VERSION_SCRIPT
> KDEINIT_VSCRIPT = -Wl,--version-script=$(top_srcdir)/admin/kdeinit.map
> endif
>
> libkdeinit_${kdeinit}_la_LDFLAGS = $(KDEINIT_VSCRIPT) -no-undefined
> -avoid-version \$(all_libraries)
>
> so that it doesn't break on compilers without --version-script support.
Good point!
> Can you make am_edit and unsermake patches for the above?
The patch for am_edit is attached... have to look at how unsermake does it's
magic a bit closer to make a patch.. but.. need some sleep first :)
> I'm inclined to commit the whole thing afterwards. Hmm, this will break
> for apps currently linking to kdeinit modules (right?), but that's
It will break apps that link to the libkdeinit_*.so's or dlopen them and try
to resolve symbols other than kdemain... but I guess if any app does that,
then it's already broken by violating the kde abi, no?!
> But, hmm, that makes it difficult to commit this while KDE is
> feature-frozen. I'll for sure use it locally from now on to see what needs
> to be fixed.
I wouldn't apply it to the feature frozen release! Too risky.
The fixed patch:
Index: am_edit
===================================================================
RCS file: /home/kde/kde-common/admin/am_edit,v
retrieving revision 1.411
diff -u -r1.411 am_edit
--- am_edit 24 Mar 2004 22:26:00 -0000 1.411
+++ am_edit 18 Jul 2004 22:49:55 -0000
@@ -865,6 +865,9 @@
if ($MakefileData =~ m/\n$lookup/) {
@kdeinits = split(/[\034\s]+/, $1);
my $lines = "";
+ appendLines("if include_VERSION_SCRIPT\n");
+ appendLines("KDEINIT_VSCRIPT = \
-Wl,--version-script=\$(top_srcdir)/admin/kdeinit.map\n"); + appendLines("endif\n");
foreach my $kdeinit (@kdeinits) {
if ($kdeinit =~ m/\.la$/) {
$kdeinit =~ s/\.la$//;
@@ -892,7 +895,8 @@
substituteLine($lookup, "${kdeinit}_la_LIBADD = \
libkdeinit_${kdeinit}.la");
appendLines("libkdeinit_${kdeinit}_la_LIBADD = $libadd\n");
}
- appendLines("libkdeinit_${kdeinit}_la_LDFLAGS = -no-undefined \
-avoid-version \$(all_libraries)\n"); +
+ appendLines("libkdeinit_${kdeinit}_la_LDFLAGS = \$(KDEINIT_VSCRIPT) \
-no-undefined -avoid-version \$(all_libraries)\n");
# add library dependencies
$lookup = $kdeinit . '_la_DEPENDENCIES\s*=[ \t]*(.*)';
Don't forget the kdeinit.map file too!
_______________________________________________
Kde-optimize mailing list
Kde-optimize@kde.org
https://mail.kde.org/mailman/listinfo/kde-optimize
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic