On 04/18/2016 06:21 PM, Adam Jackson wrote:
On Mon, 2016-04-18 at 09:23 +0300, Yury Gribov wrote:

Does below look like a sane approach?
1) get all deps via
    $ apt-cache rdepends libice6 libice-dev
2) unpack each of the above .debs and scan for ELFs
3) for each ELF see if one of now hidden symbols is UND

That sounds good to me.

I've cooked a simple script (attached, reviews welcome) and applied it to Ubuntu 14. It showed that there are additional uses for _IceTransNoListen (mentioned by Alan in separate email) but nothing else.

Note that this does not handle transitive dependencies e.g. if some
weird library links static version of libICE and the re-exports it's
symbols as part of new lib's public interface.

It'd be possible to scan for this too I suspect.  Look for packages
that BuildRequire libice6-static, scan the resulting binaries for
exports. I suspect there are zero such packages.

I have postponed this activity for now (especially given that this behavior would be a serious packaging abuse).

-Y

Attachment: find-used-symbols.sh
Description: application/shellscript

IceAcceptConnection
IceAddConnectionWatch
IceAllocScratch
IceAuthFileName
IceCloseConnection
IceComposeNetworkIdList
IceConnectionNumber
IceConnectionStatus
IceConnectionString
_IceErrorBadLength
_IceErrorBadMinor
_IceErrorBadState
_IceErrorBadValue
IceFlush
IceFreeAuthFileEntry
IceFreeListenObjs
IceGenerateMagicCookie
IceGetConnectionContext
IceGetListenConnectionNumber
IceGetListenConnectionString
IceGetPeerName
IceLastSentSequenceNumber
IceListenForConnections
IceLockAuthFile
IceOpenConnection
_IcePaMagicCookie1Proc
_IcePoMagicCookie1Proc
IceProcessMessages
IceProtocolSetup
IceProtocolShutdown
_IceRead
IceReadAuthFileEntry
_IceReadSkip
IceRegisterForProtocolReply
IceRegisterForProtocolSetup
IceRemoveConnectionWatch
IceSetErrorHandler
IceSetHostBasedAuthProc
IceSetIOErrorHandler
IceSetPaAuthData
IceSetShutdownNegotiation
_IceTransNoListen
IceUnlockAuthFile
_IceWrite
IceWriteAuthFileEntry
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to