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/ -- To UNSUBSCRIBE, email to debian-mentors-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/20140404013848.gy10...@stoneboat.aleph1.co.uk