On 2010-09-01 "Carlos R. Mafra" <[email protected]> wrote: > On Wed, 1 Sep 2010 at 19:24:41 +0200, Andreas Metzler wrote: >> Carlos R. Mafra <[email protected]> wrote: >>> On Sun, 29 Aug 2010 at 13:07:50 -0700, Doug Barton wrote: >>>> As for symbol versioning, it can be useful, but is probably overkill >>>> for something like libwraster unless there are plans to change its >>>> internals dramatically down the road. I do agree that not exporting >>>> private symbols is a good idea.
>>> Is there an easy way to get the benefits of patch 3 (ie not export >>> private symbols) without the versioning stuff? >> I think I could strip down the .map file to only list the the public >> symbols and use >> libtool -export-symbols =$(srcdir)/libwraster.sym >> instead of >> libtool -Wl,--version-script=$(srcdir)/libwraster.map >> I can come up with a patch (probably not before saturday) if that is >> wanted. > Yep, and then the first two patches can be dropped from 'next'. Patch attached. This goes on top of git revert 7e5b8e412f8cdbf2a5865ba38ede1cc233cf731c git revert 44edeea804f61e0e13bfa4f90f751395ac04d263 (I would prefer if these two commits were reverted in the repo instead of pruned from the history.) cu andreas -- `What a good friend you are to him, Dr. Maturin. His other friends are so grateful to you.' `I sew his ears on from time to time, sure'
>From 3a8ec192592ef306c1e58283ed163f18162adf7b Mon Sep 17 00:00:00 2001 From: Andreas Metzler <[email protected]> Date: Sat, 4 Sep 2010 14:13:03 +0200 Subject: [PATCH] Stop export private libwraster symbols Use libtools -export-symbols switch to limit libwraster's exported symbols to public ones. They are listed in wrlib/libwraster.sym. --- wrlib/Makefile.am | 2 +- wrlib/libwraster.sym | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 1 deletions(-) create mode 100644 wrlib/libwraster.sym diff --git a/wrlib/Makefile.am b/wrlib/Makefile.am index 47e90af..4108ea7 100644 --- a/wrlib/Makefile.am +++ b/wrlib/Makefile.am @@ -8,7 +8,7 @@ EXTRA_DIST = tests lib_LTLIBRARIES = libwraster.la -libwraster_la_LDFLAGS = -version-info @WRASTER_VERSION@ +libwraster_la_LDFLAGS = -export-symbols $(srcdir)/libwraster.sym -version-info @WRASTER_VERSION@ bin_SCRIPTS = get-wraster-flags diff --git a/wrlib/libwraster.sym b/wrlib/libwraster.sym new file mode 100644 index 0000000..14b4a8b --- /dev/null +++ b/wrlib/libwraster.sym @@ -0,0 +1,53 @@ +RBevelImage +RBlurImage +RClearImage +RCloneImage +RCombineArea +RCombineAreaWithOpaqueness +RCombineImages +RCombineImagesWithOpaqueness +RCombineImageWithColor +RConvertImage +RConvertImageMask +RCopyArea +RCreateContext +RCreateImage +RCreateImageFromDrawable +RCreateImageFromXImage +RCreateXImage +RDestroyXImage +RDrawLine +RDrawLines +RDrawSegments +RErrorCode +RFillImage +RGetClosestXColor +RGetImageFileFormat +RGetImageFromXPMData +RGetPixel +RGetSubImage +RGetXImage +RHSVtoRGB +RLoadImage +RMakeCenteredImage +RMakeTiledImage +RMessageForError +ROperateLine +ROperateLines +ROperatePixel +ROperatePixels +ROperateSegments +RPutPixel +RPutPixels +RPutXImage +RReleaseImage +RRenderGradient +RRenderInterwovenGradient +RRenderMultiGradient +RRetainImage +RRGBtoHSV +RRotateImage +RSaveImage +RScaleImage +RSmoothScaleImage +RSupportedFileFormats -- 1.7.1
