grokking debian symbols files
I have always been a bit vague about the workings of symbols files in
packaging. I understand what it's supposed to do, but not how the
mechanics work.
I have a problem getting mozjs to build on arm64 which means someone
needs to explain to me exactly what the contents of those files mean.
The package has already been ported and bug filed with patch:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=726402 which updates
the symbols file to have 'arm64' and '!arm64' in the various
arch-qualified symbols entries (which I think I do understand). However
it still doesn't build and gives me a symbols patch (below).
The issue seems to be entries that have the form:
(subst) <lonsymbolname>{uint64_t}<moresymbol> blah foo
Reading the man page for dpkg-gensymbols does not tell me what this
means. It looks like the 'tag' form but the {type} notation is not
explained SFAICS. What should those substitutions be? Why am I getting a
complaint? Are the types not being substituted correctly? They all seem
to come out as 'm' whether the {type} part is {uint64_t} or {size_t}
which makes me suspect that's not right? Should I expect a one-letter
substitution? What is the coding? where does it come from? Why are these
symbol names so cryptic - is that just C++?
So if someone could explain how this is supposed to work, how to debug,
or even better why it's broken, that would be very helpful.
The relevant bit of log file/patch:
dh_makeshlibs -O--sourcedirectory=/«BUILDDIR»/mozjs-1.8.5-1.0.0\+dfsg/js/src
dpkg-gensymbols: warning: some new symbols appeared in the symbols file: see diff output below
dpkg-gensymbols: warning: some symbols or patterns disappeared in the symbols file: see diff output below
dpkg-gensymbols: warning: debian/libmozjs185-1.0/DEBIAN/symbols doesn't match completely debian/libmozjs185-1.0.symbols
--- debian/libmozjs185-1.0.symbols (libmozjs185-1.0_1.8.5-1.0.0+dfsg-4+arm64_arm64)
+++ dpkg-gensymbolsYZIsr5 2014-04-02 18:13:26.541571600 +0000
@@ -548,7 +548,8 @@
(arch=!amd64 !arm64 !ia64 !kfreebsd-amd64 !s390x)_Z17js_LookupPropertyP9JSContextP8JSObjectiPS2_PP10JSProperty@Base 1.8.5-1.0.0+dfsg
(arch=amd64 arm64 ia64 kfreebsd-amd64 s390x)_Z17js_LookupPropertyP9JSContextP8JSObjectlPS2_PP10JSProperty@Base 1.8.5-1.0.0+dfsg
_Z17js_ObjectIsRegExpP8JSObject@Base 1.8.5-1.0.0+dfsg
- (subst)_Z18JS_StructuredCloneP9JSContext{uint64_t}P{uint64_t}PFP8JSObjectS0_P23JSStructuredCloneReaderjjPvEPK26JSStructuredCloneCallbacksS6_@Base 1.8.5-1.0.0+dfsg
+ _Z18JS_StructuredCloneP9JSContextmPmPFP8JSObjectS0_P23JSStructuredCloneReaderjjPvEPK26JSStructuredCloneCallbacksS6_@Base 1.8.5-1.0.0+dfsg-4+arm64
+#MISSING: 1.8.5-1.0.0+dfsg-4+arm64# (subst)_Z18JS_StructuredCloneP9JSContext{uint64_t}P{uint64_t}PFP8JSObjectS0_P23JSStructuredCloneReaderjjPvEPK26JSStructuredCloneCallbacksS6_@Base 1.8.5-1.0.0+dfsg
_Z18js_ConsumeJSONTextP9JSContextP10JSONParserPKtj12DecodingMode@Base 1.8.5-1.0.0+dfsg
_Z18js_GCThingIsMarkedPvj@Base 1.8.5-1.0.0+dfsg
_Z18js_GetErrorMessagePvPKcj@Base 1.8.5-1.0.0+dfsg
@@ -571,7 +572,8 @@
(arch=!s390 !s390x)_Z24js_InitTypedArrayClassesP9JSContextP8JSObject@Base 1.8.5-1.0.0+dfsg
_Z24js_IsDensePrimitiveArrayP8JSObject@Base 1.8.5-1.0.0+dfsg
(subst|arch=!amd64 !arm64 !ia64 !kfreebsd-amd64 !s390x)_Z25js_GetterOnlyPropertyStubP9JSContextP8JSObjectiiP{uint64_t}@Base 1.8.5-1.0.0+dfsg
- (subst|arch=amd64 arm64 ia64 kfreebsd-amd64 s390x)_Z25js_GetterOnlyPropertyStubP9JSContextP8JSObjectliP{uint64_t}@Base 1.8.5-1.0.0+dfsg
+ _Z25js_GetterOnlyPropertyStubP9JSContextP8JSObjectliPm@Base 1.8.5-1.0.0+dfsg-4+arm64
+#MISSING: 1.8.5-1.0.0+dfsg-4+arm64# (subst|arch=amd64 arm64 ia64 kfreebsd-amd64 s390x)_Z25js_GetterOnlyPropertyStubP9JSContextP8JSObjectliP{uint64_t}@Base 1.8.5-1.0.0+dfsg
_Z27js_CloneDensePrimitiveArrayP9JSContextP8JSObjectPS2_@Base 1.8.5-1.0.0+dfsg
_Z27js_ReportAllocationOverflowP9JSContext@Base 1.8.5-1.0.0+dfsg
(arch=!arm64 !ia64 !mips !mipsel !powerpc !s390 !s390x)_Z27js_SetTraceableNativeFailedP9JSContext@Base 1.8.5-1.0.0+dfsg
@@ -583,7 +585,8 @@
_Z8js_fgetsPciP8_IO_FILE@Base 1.8.5-1.0.0+dfsg
_ZN11JSObjectMap15sharedNonNativeE@Base 1.8.5-1.0.0+dfsg
_ZN13JSCompartment14allocMathCacheEP9JSContext@Base 1.8.5-1.0.0+dfsg
- (subst)_ZN13JSCompartment14setGCLastBytesE{size_t}@Base 1.8.5-1.0.0+dfsg
+ _ZN13JSCompartment14setGCLastBytesEm@Base 1.8.5-1.0.0+dfsg-4+arm64
+#MISSING: 1.8.5-1.0.0+dfsg-4+arm64# (subst)_ZN13JSCompartment14setGCLastBytesE{size_t}@Base 1.8.5-1.0.0+dfsg
_ZN13JSCompartment16finishArenaListsEv@Base 1.8.5-1.0.0+dfsg
_ZN13JSCompartment16incBackEdgeCountEPh@Base 1.8.5-1.0.0+dfsg
_ZN13JSCompartment18arenaListsAreEmptyEv@Base 1.8.5-1.0.0+dfsg
@@ -650,10 +653,12 @@
_ZN2JS15PerfMeasurementC2ENS0_9EventMaskE@Base 1.8.5-1.0.0+dfsg
_ZN2JS15PerfMeasurementD1Ev@Base 1.8.5-1.0.0+dfsg
_ZN2JS15PerfMeasurementD2Ev@Base 1.8.5-1.0.0+dfsg
- (subst)_ZN2JS22ExtractPerfMeasurementE{uint64_t}@Base 1.8.5-1.0.0+dfsg
+ _ZN2JS22ExtractPerfMeasurementEm@Base 1.8.5-1.0.0+dfsg-4+arm64
+#MISSING: 1.8.5-1.0.0+dfsg-4+arm64# (subst)_ZN2JS22ExtractPerfMeasurementE{uint64_t}@Base 1.8.5-1.0.0+dfsg
_ZN2JS23RegisterPerfMeasurementEP9JSContextP8JSObject@Base 1.8.5-1.0.0+dfsg
_ZN2JS26AutoEnterScriptCompartment5enterEP9JSContextP8JSScript@Base 1.8.5-1.0.0+dfsg
- (subst)_ZN2JS4CallEP9JSContext{uint64_t}{uint64_t}jP{uint64_t}S2_@Base 1.8.5-1.0.0+dfsg
+ _ZN2JS4CallEP9JSContextmmjPmS2_@Base 1.8.5-1.0.0+dfsg-4+arm64
+#MISSING: 1.8.5-1.0.0+dfsg-4+arm64# (subst)_ZN2JS4CallEP9JSContext{uint64_t}{uint64_t}jP{uint64_t}S2_@Base 1.8.5-1.0.0+dfsg
_ZN2js10LeaveTraceEP9JSContext@Base 1.8.5-1.0.0+dfsg
_ZN2js10TypedArray11fastClassesE@Base 1.8.5-1.0.0+dfsg
_ZN2js10TypedArray11slowClassesE@Base 1.8.5-1.0.0+dfsg
@@ -728,7 +733,8 @@
_ZN8JSObject18copyPropertiesFromEP9JSContextPS_@Base 1.8.5-1.0.0+dfsg
_ZN8JSObject5cloneEP9JSContextPS_S2_@Base 1.8.5-1.0.0+dfsg
_ZN8JSObject6unwrapEPj@Base 1.8.5-1.0.0+dfsg
- (subst)_ZN9JSRuntime13onOutOfMemoryEPv{size_t}P9JSContext@Base 1.8.5-1.0.0+dfsg
+ _ZN9JSRuntime13onOutOfMemoryEPvmP9JSContext@Base 1.8.5-1.0.0+dfsg-4+arm64
+#MISSING: 1.8.5-1.0.0+dfsg-4+arm64# (subst)_ZN9JSRuntime13onOutOfMemoryEPv{size_t}P9JSContext@Base 1.8.5-1.0.0+dfsg
_ZN9JSRuntime15onTooMuchMallocEv@Base 1.8.5-1.0.0+dfsg
_ZN9JSWrapper11hasInstanceEP9JSContextP8JSObjectPKN2js5ValueEPb@Base 1.8.5-1.0.0+dfsg
_ZN9JSWrapper12fun_toStringEP9JSContextP8JSObjectj@Base 1.8.5-1.0.0+dfsg
Wookey
--
Principal hats: Linaro, Emdebian, Wookware, Balloonboard, ARM
http://wookware.org/
Reply to: