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]

Reply via email to