Opened 15 years ago
Closed 13 years ago
#474 closed defect (fixed)
Java-Swig bindings fail to build on Windows due to missing symbols
Reported by: | Charlie Hull | Owned by: | Charlie Hull |
---|---|---|---|
Priority: | normal | Milestone: | 1.2.7 |
Component: | MSVC makefiles | Version: | SVN trunk |
Severity: | normal | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | Operating System: | Microsoft Windows |
Description
I'm not sure if this is a problem with SWIG or something else, but the missing symbols all look like relatively recent additions. Here's the log from building one of the .java files included in this release:
"C:\Program Files\Java\jdk1.6.0_05\bin\javac.exe" -classpath . -d . Auto.java .\XapianJNI.java:113: cannot find symbol symbol : class ValuePostingSource location: class XapianJNI public final static native long ValuePostingSource_getTermfreqMin(long jarg1, ValuePostingSource jarg1_); ^ .\XapianJNI.java:114: cannot find symbol symbol : class ValuePostingSource location: class XapianJNI public final static native long ValuePostingSource_getTermfreqEst(long jarg1, ValuePostingSource jarg1_); ^ .\XapianJNI.java:115: cannot find symbol symbol : class ValuePostingSource location: class XapianJNI public final static native long ValuePostingSource_getTermfreqMax(long jarg1, ValuePostingSource jarg1_); ^ .\XapianJNI.java:116: cannot find symbol symbol : class ValuePostingSource location: class XapianJNI public final static native void ValuePostingSource_next(long jarg1, ValuePostingSource jarg1_, double jarg2); ^ .\XapianJNI.java:117: cannot find symbol symbol : class ValuePostingSource location: class XapianJNI public final static native void ValuePostingSource_skipTo(long jarg1, ValuePostingSource jarg1_, long jarg2, double jarg3); ^ .\XapianJNI.java:118: cannot find symbol symbol : class ValuePostingSource location: class XapianJNI public final static native boolean ValuePostingSource_check(long jarg1, ValuePostingSource jarg1_, long jarg2, double jarg3); ^ .\XapianJNI.java:119: cannot find symbol symbol : class ValuePostingSource location: class XapianJNI public final static native boolean ValuePostingSource_atEnd(long jarg1, ValuePostingSource jarg1_); ^ .\XapianJNI.java:120: cannot find symbol symbol : class ValuePostingSource location: class XapianJNI public final static native long ValuePostingSource_getDocId(long jarg1, ValuePostingSource jarg1_); ^ .\XapianJNI.java:121: cannot find symbol symbol : class ValuePostingSource location: class XapianJNI public final static native void ValuePostingSource_init(long jarg1, ValuePostingSource jarg1_, long jarg2, Database jarg2_); ^ .\XapianJNI.java:124: cannot find symbol symbol : class ValueWeightPostingSource location: class XapianJNI public final static native double ValueWeightPostingSource_getWeight(long jarg1, ValueWeightPostingSource jarg1_); ^ .\XapianJNI.java:125: cannot find symbol symbol : class ValueWeightPostingSource location: class XapianJNI public final static native String ValueWeightPostingSource_name(long jarg1, ValueWeightPostingSource jarg1_); ^ .\XapianJNI.java:126: cannot find symbol symbol : class ValueWeightPostingSource location: class XapianJNI public final static native void ValueWeightPostingSource_init(long jarg1, ValueWeightPostingSource jarg1_, long jarg2, Database jarg2_); ^ .\XapianJNI.java:127: cannot find symbol symbol : class ValueWeightPostingSource location: class XapianJNI public final static native String ValueWeightPostingSource_toString(long jarg1, ValueWeightPostingSource jarg1_); ^ .\XapianJNI.java:132: cannot find symbol symbol : class DecreasingValueWeightPostingSource location: class XapianJNI public final static native double DecreasingValueWeightPostingSource_getWeight(long jarg1, DecreasingValueWeightPostingSource jarg1_); ^ .\XapianJNI.java:133: cannot find symbol symbol : class DecreasingValueWeightPostingSource location: class XapianJNI public final static native String DecreasingValueWeightPostingSource_name(long jarg1, DecreasingValueWeightPostingSource jarg1_); ^ .\XapianJNI.java:134: cannot find symbol symbol : class DecreasingValueWeightPostingSource location: class XapianJNI public final static native void DecreasingValueWeightPostingSource_init(long jarg1, DecreasingValueWeightPostingSource jarg1_, long jarg2, Database jarg2_); ^ .\XapianJNI.java:135: cannot find symbol symbol : class DecreasingValueWeightPostingSource location: class XapianJNI public final static native void DecreasingValueWeightPostingSource_next(long jarg1, DecreasingValueWeightPostingSource jarg1_, double jarg2); ^ .\XapianJNI.java:136: cannot find symbol symbol : class DecreasingValueWeightPostingSource location: class XapianJNI public final static native void DecreasingValueWeightPostingSource_skipTo(long jarg1, DecreasingValueWeightPostingSource jarg1_, long jarg2, double jarg3); ^ .\XapianJNI.java:137: cannot find symbol symbol : class DecreasingValueWeightPostingSource location: class XapianJNI public final static native boolean DecreasingValueWeightPostingSource_check(long jarg1, DecreasingValueWeightPostingSource jarg1_, long jarg2, double jarg3); ^ .\XapianJNI.java:138: cannot find symbol symbol : class DecreasingValueWeightPostingSource location: class XapianJNI public final static native String DecreasingValueWeightPostingSource_toString(long jarg1, DecreasingValueWeightPostingSource jarg1_); ^ .\XapianJNI.java:141: cannot find symbol symbol : class ValueMapPostingSource location: class XapianJNI public final static native void ValueMapPostingSource_addMapping(long jarg1, ValueMapPostingSource jarg1_, String jarg2, double jarg3); ^ .\XapianJNI.java:142: cannot find symbol symbol : class ValueMapPostingSource location: class XapianJNI public final static native void ValueMapPostingSource_clearMappings(long jarg1, ValueMapPostingSource jarg1_); ^ .\XapianJNI.java:143: cannot find symbol symbol : class ValueMapPostingSource location: class XapianJNI public final static native void ValueMapPostingSource_setDefaultWeight(long jarg1, ValueMapPostingSource jarg1_, double jarg2); ^ .\XapianJNI.java:144: cannot find symbol symbol : class ValueMapPostingSource location: class XapianJNI public final static native double ValueMapPostingSource_getWeight(long jarg1, ValueMapPostingSource jarg1_); ^ .\XapianJNI.java:145: cannot find symbol symbol : class ValueMapPostingSource location: class XapianJNI public final static native String ValueMapPostingSource_name(long jarg1, ValueMapPostingSource jarg1_); ^ .\XapianJNI.java:146: cannot find symbol symbol : class ValueMapPostingSource location: class XapianJNI public final static native void ValueMapPostingSource_init(long jarg1, ValueMapPostingSource jarg1_, long jarg2, Database jarg2_); ^ .\XapianJNI.java:147: cannot find symbol symbol : class ValueMapPostingSource location: class XapianJNI public final static native String ValueMapPostingSource_toString(long jarg1, ValueMapPostingSource jarg1_); ^ .\XapianJNI.java:150: cannot find symbol symbol : class FixedWeightPostingSource location: class XapianJNI public final static native long FixedWeightPostingSource_getTermfreqMin(long jarg1, FixedWeightPostingSource jarg1_); ^ .\XapianJNI.java:151: cannot find symbol symbol : class FixedWeightPostingSource location: class XapianJNI public final static native long FixedWeightPostingSource_getTermfreqEst(long jarg1, FixedWeightPostingSource jarg1_); ^ .\XapianJNI.java:152: cannot find symbol symbol : class FixedWeightPostingSource location: class XapianJNI public final static native long FixedWeightPostingSource_getTermfreqMax(long jarg1, FixedWeightPostingSource jarg1_); ^ .\XapianJNI.java:153: cannot find symbol symbol : class FixedWeightPostingSource location: class XapianJNI public final static native double FixedWeightPostingSource_getWeight(long jarg1, FixedWeightPostingSource jarg1_); ^ .\XapianJNI.java:154: cannot find symbol symbol : class FixedWeightPostingSource location: class XapianJNI public final static native void FixedWeightPostingSource_next(long jarg1, FixedWeightPostingSource jarg1_, double jarg2); ^ .\XapianJNI.java:155: cannot find symbol symbol : class FixedWeightPostingSource location: class XapianJNI public final static native void FixedWeightPostingSource_skipTo(long jarg1, FixedWeightPostingSource jarg1_, long jarg2, double jarg3); ^ .\XapianJNI.java:156: cannot find symbol symbol : class FixedWeightPostingSource location: class XapianJNI public final static native boolean FixedWeightPostingSource_check(long jarg1, FixedWeightPostingSource jarg1_, long jarg2, double jarg3); ^ .\XapianJNI.java:157: cannot find symbol symbol : class FixedWeightPostingSource location: class XapianJNI public final static native boolean FixedWeightPostingSource_atEnd(long jarg1, FixedWeightPostingSource jarg1_); ^ .\XapianJNI.java:158: cannot find symbol symbol : class FixedWeightPostingSource location: class XapianJNI public final static native long FixedWeightPostingSource_getDocId(long jarg1, FixedWeightPostingSource jarg1_); ^ .\XapianJNI.java:159: cannot find symbol symbol : class FixedWeightPostingSource location: class XapianJNI public final static native String FixedWeightPostingSource_name(long jarg1, FixedWeightPostingSource jarg1_); ^ .\XapianJNI.java:160: cannot find symbol symbol : class FixedWeightPostingSource location: class XapianJNI public final static native void FixedWeightPostingSource_init(long jarg1, FixedWeightPostingSource jarg1_, long jarg2, Database jarg2_); ^ .\XapianJNI.java:161: cannot find symbol symbol : class FixedWeightPostingSource location: class XapianJNI public final static native String FixedWeightPostingSource_toString(long jarg1, FixedWeightPostingSource jarg1_); ^ .\XapianJNI.java:253: cannot find symbol symbol : class MatchSpy location: class XapianJNI public final static native void Enquire_addMatchspy(long jarg1, Enquire jarg1_, long jarg2, MatchSpy jarg2_); ^ .\XapianJNI.java:271: cannot find symbol symbol : class KeyMaker location: class XapianJNI public final static native void Enquire_setSortByKey__SWIG_0(long jarg1, Enquire jarg1_, long jarg2, KeyMaker jarg2_, boolean jarg3); ^ .\Sorter.java:10: cannot find symbol symbol: class KeyMaker public class Sorter extends KeyMaker { ^ .\XapianJNI.java:273: cannot find symbol symbol : class KeyMaker location: class XapianJNI public final static native void Enquire_setSortByKeyThenRelevance__SWIG_0(long jarg1, Enquire jarg1_, long jarg2, KeyMaker jarg2_, boolean jarg3); ^ .\XapianJNI.java:275: cannot find symbol symbol : class KeyMaker location: class XapianJNI public final static native void Enquire_setSortByRelevanceThenKey__SWIG_0(long jarg1, Enquire jarg1_, long jarg2, KeyMaker jarg2_, boolean jarg3); ^ .\XapianJNI.java:296: cannot find symbol symbol : class Registry location: class XapianJNI public final static native long new_Registry__SWIG_0(long jarg1, Registry jarg1_); ^ .\XapianJNI.java:299: cannot find symbol symbol : class Registry location: class XapianJNI public final static native void Registry_registerWeightingScheme(long jarg1, Registry jarg1_, long jarg2, Weight jarg2_); ^ .\XapianJNI.java:300: cannot find symbol symbol : class Registry location: class XapianJNI public final static native long Registry_getWeightingScheme(long jarg1, Registry jarg1_, String jarg2); ^ .\XapianJNI.java:301: cannot find symbol symbol : class Registry location: class XapianJNI public final static native void Registry_registerPostingSource(long jarg1, Registry jarg1_, long jarg2, PostingSource jarg2_); ^ .\XapianJNI.java:302: cannot find symbol symbol : class Registry location: class XapianJNI public final static native long Registry_getPostingSource(long jarg1, Registry jarg1_, String jarg2); ^ .\XapianJNI.java:303: cannot find symbol symbol : class Registry location: class XapianJNI public final static native void Registry_registerMatchSpy(long jarg1, Registry jarg1_, long jarg2, MatchSpy jarg2_); ^ .\XapianJNI.java:303: cannot find symbol symbol : class MatchSpy location: class XapianJNI public final static native void Registry_registerMatchSpy(long jarg1, Registry jarg1_, long jarg2, MatchSpy jarg2_); ^ .\XapianJNI.java:304: cannot find symbol symbol : class Registry location: class XapianJNI public final static native long Registry_getMatchSpy(long jarg1, Registry jarg1_, String jarg2); ^ .\XapianJNI.java:337: cannot find symbol symbol : class MatchSpy location: class XapianJNI public final static native void MatchSpy_apply(long jarg1, MatchSpy jarg1_, long jarg2, Document jarg2_, double jarg3); ^ .\XapianJNI.java:338: cannot find symbol symbol : class MatchSpy location: class XapianJNI public final static native long MatchSpy_cloneWeight(long jarg1, MatchSpy jarg1_); ^ .\XapianJNI.java:339: cannot find symbol symbol : class MatchSpy location: class XapianJNI public final static native String MatchSpy_name(long jarg1, MatchSpy jarg1_); ^ .\XapianJNI.java:340: cannot find symbol symbol : class MatchSpy location: class XapianJNI public final static native String MatchSpy_serialise(long jarg1, MatchSpy jarg1_); ^ .\XapianJNI.java:341: cannot find symbol symbol : class MatchSpy location: class XapianJNI public final static native long MatchSpy_unserialise(long jarg1, MatchSpy jarg1_, String jarg2, long jarg3, Registry jarg3_); ^ .\XapianJNI.java:341: cannot find symbol symbol : class Registry location: class XapianJNI public final static native long MatchSpy_unserialise(long jarg1, MatchSpy jarg1_, String jarg2, long jarg3, Registry jarg3_); ^ .\XapianJNI.java:342: cannot find symbol symbol : class MatchSpy location: class XapianJNI public final static native String MatchSpy_serialiseResults(long jarg1, MatchSpy jarg1_); ^ .\XapianJNI.java:343: cannot find symbol symbol : class MatchSpy location: class XapianJNI public final static native void MatchSpy_mergeResults(long jarg1, MatchSpy jarg1_, String jarg2); ^ .\XapianJNI.java:344: cannot find symbol symbol : class MatchSpy location: class XapianJNI public final static native String MatchSpy_toString(long jarg1, MatchSpy jarg1_); ^ .\XapianJNI.java:347: cannot find symbol symbol : class ValueCountMatchSpy location: class XapianJNI public final static native long ValueCountMatchSpy_getTotal(long jarg1, ValueCountMatchSpy jarg1_); ^ .\XapianJNI.java:348: cannot find symbol symbol : class ValueCountMatchSpy location: class XapianJNI public final static native long ValueCountMatchSpy_valuesBegin(long jarg1, ValueCountMatchSpy jarg1_); ^ .\XapianJNI.java:349: cannot find symbol symbol : class ValueCountMatchSpy location: class XapianJNI public final static native long ValueCountMatchSpy_valuesEnd(long jarg1, ValueCountMatchSpy jarg1_); ^ .\XapianJNI.java:350: cannot find symbol symbol : class ValueCountMatchSpy location: class XapianJNI public final static native long ValueCountMatchSpy_topValuesBegin(long jarg1, ValueCountMatchSpy jarg1_, long jarg2); ^ .\XapianJNI.java:351: cannot find symbol symbol : class ValueCountMatchSpy location: class XapianJNI public final static native long ValueCountMatchSpy_topValuesEnd(long jarg1, ValueCountMatchSpy jarg1_, long jarg2); ^ .\XapianJNI.java:352: cannot find symbol symbol : class ValueCountMatchSpy location: class XapianJNI public final static native void ValueCountMatchSpy_apply(long jarg1, ValueCountMatchSpy jarg1_, long jarg2, Document jarg2_, double jarg3); ^ .\XapianJNI.java:353: cannot find symbol symbol : class ValueCountMatchSpy location: class XapianJNI public final static native long ValueCountMatchSpy_cloneWeight(long jarg1, ValueCountMatchSpy jarg1_); ^ .\XapianJNI.java:354: cannot find symbol symbol : class ValueCountMatchSpy location: class XapianJNI public final static native String ValueCountMatchSpy_name(long jarg1, ValueCountMatchSpy jarg1_); ^ .\XapianJNI.java:355: cannot find symbol symbol : class ValueCountMatchSpy location: class XapianJNI public final static native String ValueCountMatchSpy_serialise(long jarg1, ValueCountMatchSpy jarg1_); ^ .\XapianJNI.java:356: cannot find symbol symbol : class ValueCountMatchSpy location: class XapianJNI public final static native long ValueCountMatchSpy_unserialise(long jarg1, ValueCountMatchSpy jarg1_, String jarg2, long jarg3, Registry jarg3_); ^ .\XapianJNI.java:356: cannot find symbol symbol : class Registry location: class XapianJNI public final static native long ValueCountMatchSpy_unserialise(long jarg1, ValueCountMatchSpy jarg1_, String jarg2, long jarg3, Registry jarg3_); ^ .\XapianJNI.java:357: cannot find symbol symbol : class ValueCountMatchSpy location: class XapianJNI public final static native String ValueCountMatchSpy_serialiseResults(long jarg1, ValueCountMatchSpy jarg1_); ^ .\XapianJNI.java:358: cannot find symbol symbol : class ValueCountMatchSpy location: class XapianJNI public final static native void ValueCountMatchSpy_mergeResults(long jarg1, ValueCountMatchSpy jarg1_, String jarg2); ^ .\XapianJNI.java:359: cannot find symbol symbol : class ValueCountMatchSpy location: class XapianJNI public final static native String ValueCountMatchSpy_toString(long jarg1, ValueCountMatchSpy jarg1_); ^ .\XapianJNI.java:479: cannot find symbol symbol : class Registry location: class XapianJNI public final static native long Query_unserialise__SWIG_1(String jarg1, long jarg2, Registry jarg2_); ^ .\XapianJNI.java:583: cannot find symbol symbol : class KeyMaker location: class XapianJNI public final static native String KeyMaker_apply(long jarg1, KeyMaker jarg1_, long jarg2, Document jarg2_); ^ .\XapianJNI.java:586: cannot find symbol symbol : class KeyMaker location: class XapianJNI public final static native void KeyMaker_director_connect(KeyMaker obj, long cptr, boolean mem_own, boolean weak_global); ^ .\XapianJNI.java:587: cannot find symbol symbol : class KeyMaker location: class XapianJNI public final static native void KeyMaker_change_ownership(KeyMaker obj, long cptr, boolean take_or_release); ^ .\XapianJNI.java:589: cannot find symbol symbol : class MultiValueKeyMaker location: class XapianJNI public final static native String MultiValueKeyMaker_apply(long jarg1, MultiValueKeyMaker jarg1_, long jarg2, Document jarg2_); ^ .\XapianJNI.java:590: cannot find symbol symbol : class MultiValueKeyMaker location: class XapianJNI public final static native void MultiValueKeyMaker_addValue__SWIG_0(long jarg1, MultiValueKeyMaker jarg1_, int jarg2, boolean jarg3); ^ .\XapianJNI.java:591: cannot find symbol symbol : class MultiValueKeyMaker location: class XapianJNI public final static native void MultiValueKeyMaker_addValue__SWIG_1(long jarg1, MultiValueKeyMaker jarg1_, int jarg2); ^ .\XapianJNI.java:600: cannot find symbol symbol : class ValueSetMatchDecider location: class XapianJNI public final static native void ValueSetMatchDecider_addValue(long jarg1, ValueSetMatchDecider jarg1_, String jarg2); ^ .\XapianJNI.java:601: cannot find symbol symbol : class ValueSetMatchDecider location: class XapianJNI public final static native void ValueSetMatchDecider_removeValue(long jarg1, ValueSetMatchDecider jarg1_, String jarg2); ^ .\XapianJNI.java:602: cannot find symbol symbol : class ValueSetMatchDecider location: class XapianJNI public final static native boolean ValueSetMatchDecider_accept(long jarg1, ValueSetMatchDecider jarg1_, long jarg2, Document jarg2_); ^ .\XapianJNI.java:674: cannot find symbol symbol : class KeyMaker location: class XapianJNI public static String SwigDirector_KeyMaker_apply(KeyMaker self, long doc) { ^ .\Enquire.java:53: cannot find symbol symbol : class MatchSpy location: class Enquire public void addMatchspy(MatchSpy spy) { ^ .\Enquire.java:113: cannot find symbol symbol : class KeyMaker location: class Enquire public void setSortByKey(KeyMaker sorter, boolean reverse) { ^ .\Enquire.java:121: cannot find symbol symbol : class KeyMaker location: class Enquire public void setSortByKeyThenRelevance(KeyMaker sorter, boolean reverse) { ^ .\Enquire.java:129: cannot find symbol symbol : class KeyMaker location: class Enquire public void setSortByRelevanceThenKey(KeyMaker sorter, boolean reverse) { ^ .\Query.java:124: cannot find symbol symbol : class Registry location: class Query public static Query unserialise(String s, Registry registry) { ^ .\Enquire.java:54: cannot find symbol symbol : variable MatchSpy location: class Enquire XapianJNI.Enquire_addMatchspy(swigCPtr, this, MatchSpy.getCPtr(spy), spy); ^ .\Enquire.java:114: cannot find symbol symbol : variable KeyMaker location: class Enquire XapianJNI.Enquire_setSortByKey__SWIG_0(swigCPtr, this, KeyMaker.getCPtr(sorter), sorter, reverse); ^ .\Enquire.java:122: cannot find symbol symbol : variable KeyMaker location: class Enquire XapianJNI.Enquire_setSortByKeyThenRelevance__SWIG_0(swigCPtr, this, KeyMaker.getCPtr(sorter), sorter, reverse); ^ .\Enquire.java:130: cannot find symbol symbol : variable KeyMaker location: class Enquire XapianJNI.Enquire_setSortByRelevanceThenKey__SWIG_0(swigCPtr, this, KeyMaker.getCPtr(sorter), sorter, reverse); ^ .\Query.java:125: cannot find symbol symbol : variable Registry location: class Query return new Query(XapianJNI.Query_unserialise__SWIG_1(s, Registry.getCPtr(registry), registry), true); ^ .\Sorter.java:19: operator == cannot be applied to Sorter,<nulltype> return (obj == null) ? 0 : obj.swigCPtr; ^ .\Sorter.java:28: cannot find symbol symbol : variable swigCMemOwn location: class Sorter if (swigCMemOwn) { ^ .\Sorter.java:29: cannot find symbol symbol : variable swigCMemOwn location: class Sorter swigCMemOwn = false; ^ .\Sorter.java:34: cannot find symbol symbol : variable super location: class Sorter super.delete(); ^ 100 errors NMAKE : fatal error U1077: '"C:\Program Files\Java\jdk1.6.0_05\bin\javac.exe"' : return code '0x1' Stop.
Attachments (1)
Change History (7)
comment:1 by , 15 years ago
Component: | Xapian-bindings → MSVC makefiles |
---|---|
Owner: | changed from | to
comment:2 by , 15 years ago
The list of generated .java files is correct as far as I can see: at least they're the same in both the .am file and my .mak file.
As the Java-Swig bindings are experimental as you say, I'm going to leave them out of this release of the build files, as 1.2.0 has been out for a while now and I'm falling a bit behind.
comment:3 by , 15 years ago
Version: | 1.2.0 → SVN trunk |
---|
Ah - I see I've already noted this in my README file as 'Java-Swig bindings do not work for SVN HEAD'. Updating VERSION accordingly.
comment:4 by , 15 years ago
The list of generated .java files is correct as far as I can see: at least they're the same in both the .am file and my .mak file.
Sadly the list in java-swig/Makefile.am isn't up to date either currently.
You need to list the files that are actually generated.
comment:5 by , 15 years ago
The patch adds the missing files; however the SmokeTest doesn't pass currently, segfaulting in xapian_jni.dll. I'll try and run under a debugger at some point to try and find out more.
comment:6 by , 13 years ago
Milestone: | → 1.2.7 |
---|---|
Resolution: | → fixed |
Status: | new → closed |
Both trunk and branches/1.2 now have some code in Makefile.am which checks that the list of files exactly matches those which are generated, so the lists are up to date and we'll see immediately if they stop being up to date.
So this bug should be gone for good.
Note that the java-swig bindings are still experimental.
But I suspect you just need to update the list of generated java source files in your build system.