[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: