tags 519006 + patch
thanks
On Thu, 09 Apr 2009, I wrote:
> > > > /usr/bin/cc -g -O2 -g -Wall -O2
> > > > CMakeFiles/wbxml2xml.dir/wbxml2xml_tool.o
> > > > CMakeFiles/wbxml2xml.dir/attgetopt.o -o wbxml2xml -rdynamic
> > > > ../src/libwbxml2.so.0.0.13 -lexpat
> > > > /usr/bin/ld: non-dynamic relocations refer to dynamic symbol
> > > > optopt@@GLIBC_2.0
> > > > /usr/bin/ld: failed to set dynamic section sizes: Bad value
> > > > collect2: ld returned 1 exit status
>
> BTW: I noticed the same error message on mips and mipsel when
> autobuilding transfig:
>
> https://buildd.debian.org/fetch.cgi?&pkg=transfig&ver=1%3A3.2.5.a-1&arch=mips&stamp=1238502583&file=log
> https://buildd.debian.org/fetch.cgi?&pkg=transfig&ver=1%3A3.2.5.a-1&arch=mipsel&stamp=1238035432&file=log
>
> All other architectures build without problems.
It seems that optopt is variable name in libc, which conflicts with a
local used name in the local program.
I worked around this problem by renaming optopt (used in a local
getopt.c) to fig_optopt and after this transfig builded on
mipsel without problems (mips is still in the queue):
https://buildd.debian.org/fetch.cgi?&pkg=transfig&ver=1%3A3.2.5.a-2&arch=mipsel&stamp=1241950555&file=log
As far as I can see, that same should be possible in wbxml2.
The attached patch should help...
Tschoeeee
Roland
diff -urN wbxml2-0.10.6.orig/tools/attgetopt.c wbxml2-0.10.6/tools/attgetopt.c
--- wbxml2-0.10.6.orig/tools/attgetopt.c 2009-04-24 16:49:50.000000000 +0200
+++ wbxml2-0.10.6/tools/attgetopt.c 2009-05-10 12:30:40.806445864 +0200
@@ -27,7 +27,7 @@
#include <string.h>
int optind = 1;
-int optopt;
+int wbxml_optopt;
char *optarg;
int
@@ -55,7 +55,7 @@
}
- optopt = c = argv[optind][sp];
+ wbxml_optopt = c = argv[optind][sp];
/* Check for invalid option */
if (c == ':' || (cp = strchr(opts, c)) == NULL) {
diff -urN wbxml2-0.10.6.orig/tools/getopt.h wbxml2-0.10.6/tools/getopt.h
--- wbxml2-0.10.6.orig/tools/getopt.h 2009-04-24 16:49:50.000000000 +0200
+++ wbxml2-0.10.6/tools/getopt.h 2009-05-10 12:30:40.806445864 +0200
@@ -11,7 +11,7 @@
int wbxml_getopt(int argc, char **argv, char *opts);
extern int optind;
-extern int optopt;
+extern int wbxml_optopt;
extern char *optarg;
#endif