Package: jigdo
Versin: 0.7.3-1
Tags: patch
Your package fails to build with recent versions of the gcc-snapshot
package, i.e. a pre-release of GCC 4.2. I think the problem is that
your code causes an ODR violation ("One Definition Rule"). A brief
explanation of the problem can be found at http://gcc.gnu.org/PR28360
> Automatic build of jigdo_0.7.3-1 on usurper by sbuild/amd64 0.46
...
> g++ -o jigdo compat.o glibcurl/glibcurl.o gtk/gtk-makeimage.o
> gtk/gtk-single-url.o gtk/gui.o gtk/interface.o gtk/jigdo.o gtk/jobline.o
> gtk/joblist.o gtk/messagebox.o gtk/support.o gtk/treeiter.o jigdoconfig.o
> job/cached-url.o job/datasource.o job/jigdo-io.o job/makeimage.o
> job/makeimagedl-info.o job/makeimagedl.o job/single-url.o job/url-mapping.o
> net/download.o net/uri.o net/proxyguess.o util/bstream.o util/configfile.o
> util/glibc-getopt.o util/glibc-getopt1.o util/glibc-md5.o util/gunzip.o
> util/log.o util/md5sum.o util/progress.o util/string-utf.o util/debug.o
> -lbz2 -lz -ldb-4.4 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0
> -lm -lpangocairo-1.0 -lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr
> -lXcursor -lXfixes -lpango-1.0 -lcairo -lX11 -lgobject-2.0 -lgmodule-2.0 -ldl
> -lglib-2.0 \
> -L/usr/lib -lcurl -L/usr/lib -lgssapi_krb5 -lkrb5
> -lk5crypto -lkrb5support -lcom_err -lresolv -lidn -lssl -lcrypto -ldl -lssl
> -lcrypto -lz # -lws2_32 -mwindows
> job/jigdo-io.o: In function `Base64In<(anonymous
> namespace)::ArrayOut>::put(char const*, unsigned int)':
> jigdo-io.cc:(.text+0x95): undefined reference to `Base64In<(anonymous
> namespace)::ArrayOut>::table'
> collect2: ld returned 1 exit status
> make[2]: *** [jigdo] Error 1
> make[2]: Leaving directory `/build/tbm/jigdo-0.7.3/src'
--- ./src/job/jigdo-io.cc~ 2006-07-22 14:57:57.000000000 +0200
+++ ./src/job/jigdo-io.cc 2006-07-22 14:58:12.000000000 +0200
@@ -501,17 +501,15 @@
}
//______________________________________________________________________
-namespace {
- /** Local class: For Base64In - put decoded bytes into 16-byte array */
- struct ArrayOut {
- typedef ArrayOut& ResultType;
- ArrayOut() { }
- void set(byte* array) { cur = array; end = array + 16; }
- void put(byte b) { if (cur == end) cur = end = 0; else *cur++ = b; }
- ArrayOut& result() { return *this; }
- byte* cur; byte* end;
- };
-}
+/** Local class: For Base64In - put decoded bytes into 16-byte array */
+struct ArrayOut {
+ typedef ArrayOut& ResultType;
+ ArrayOut() { }
+ void set(byte* array) { cur = array; end = array + 16; }
+ void put(byte b) { if (cur == end) cur = end = 0; else *cur++ = b; }
+ ArrayOut& result() { return *this; }
+ byte* cur; byte* end;
+};
//____________________
/* @param label Pointer to word before the '='
--
Martin Michlmayr
http://www.cyrius.com/
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]