]> git.pld-linux.org Git - packages/gdal.git/blob - gdal-bug-5284.patch
c01b55c302cf0b696ae699324f8168ff0b6b3004
[packages/gdal.git] / gdal-bug-5284.patch
1 Index: /trunk/gdal/configure\r
2 ===================================================================\r
3 --- /trunk/gdal/configure       (revision 26534)\r
4 +++ /trunk/gdal/configure       (revision 26582)\r
5 @@ -723,4 +723,5 @@\r
6  II_SYSTEM\r
7  HAVE_INGRES\r
8 +MYSQL_NEEDS_LOAD_DEFAULTS_DECLARATION\r
9  MYSQL_LIB\r
10  MYSQL_INC\r
11 @@ -23308,4 +23309,32 @@\r
12        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5\r
13  $as_echo "yes" >&6; }\r
14 +\r
15 +      # Check if mysql headers declare load_defaults\r
16 +      { $as_echo "$as_me:${as_lineno-$LINENO}: checking load_defaults() in MySQL" >&5\r
17 +$as_echo_n "checking load_defaults() in MySQL... " >&6; }\r
18 +      rm -f testmysql.*\r
19 +      echo '#include "my_global.h"' > testmysql.cpp\r
20 +      echo '#include "my_sys.h"' >> testmysql.cpp\r
21 +      echo 'int main(int argc, char** argv) { load_defaults(0, 0, 0, 0); return 0; } ' >> testmysql.cpp\r
22 +      if test -z "`${CXX} ${CXXFLAGS} ${MYSQL_INC} ${MYSQL_LIB} testmysql.cpp -o testmysql 2>&1`" ; then\r
23 +        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, found in my_sys.h" >&5\r
24 +$as_echo "yes, found in my_sys.h" >&6; }\r
25 +      else\r
26 +        echo 'extern "C" void load_defaults(const char *conf_file, const char **groups, int *argc, char ***argv);' > testmysql.cpp\r
27 +        echo 'int main(int argc, char** argv) { load_defaults(0, 0, 0, 0); return 0; } ' >> testmysql.cpp\r
28 +        if test -z "`${CXX} ${CXXFLAGS} ${MYSQL_INC} ${MYSQL_LIB} testmysql.cpp -o testmysql 2>&1`" ; then\r
29 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, found in library but not in header" >&5\r
30 +$as_echo "yes, found in library but not in header" >&6; }\r
31 +            MYSQL_NEEDS_LOAD_DEFAULTS_DECLARATION=yes\r
32 +        else\r
33 +            HAVE_MYSQL=no\r
34 +            MYSQL_LIB=\r
35 +            MYSQL_INC=\r
36 +            as_fn_error $? "Cannot find load_defaults()" "$LINENO" 5\r
37 +        fi\r
38 +      fi\r
39 +      rm -f testmysql.*\r
40 +      rm -f testmysql\r
41 +\r
42         ;;\r
43    esac\r
44 @@ -23317,4 +23346,6 @@\r
45  \r
46  MYSQL_LIB=$MYSQL_LIB\r
47 +\r
48 +MYSQL_NEEDS_LOAD_DEFAULTS_DECLARATION=$MYSQL_NEEDS_LOAD_DEFAULTS_DECLARATION\r
49  \r
50  \r
51 Index: /trunk/gdal/configure.in\r
52 ===================================================================\r
53 --- /trunk/gdal/configure.in    (revision 26534)\r
54 +++ /trunk/gdal/configure.in    (revision 26582)\r
55 @@ -2462,4 +2462,29 @@\r
56        MYSQL_INC="`$MYSQL_CONFIG --include`"\r
57        AC_MSG_RESULT([yes])\r
58 +\r
59 +      # Check if mysql headers declare load_defaults\r
60 +      AC_MSG_CHECKING([load_defaults() in MySQL])\r
61 +      rm -f testmysql.*\r
62 +      echo '#include "my_global.h"' > testmysql.cpp\r
63 +      echo '#include "my_sys.h"' >> testmysql.cpp\r
64 +      echo 'int main(int argc, char** argv) { load_defaults(0, 0, 0, 0); return 0; } ' >> testmysql.cpp\r
65 +      if test -z "`${CXX} ${CXXFLAGS} ${MYSQL_INC} ${MYSQL_LIB} testmysql.cpp -o testmysql 2>&1`" ; then\r
66 +        AC_MSG_RESULT([yes, found in my_sys.h])\r
67 +      else\r
68 +        echo 'extern "C" void load_defaults(const char *conf_file, const char **groups, int *argc, char ***argv);' > testmysql.cpp\r
69 +        echo 'int main(int argc, char** argv) { load_defaults(0, 0, 0, 0); return 0; } ' >> testmysql.cpp\r
70 +        if test -z "`${CXX} ${CXXFLAGS} ${MYSQL_INC} ${MYSQL_LIB} testmysql.cpp -o testmysql 2>&1`" ; then\r
71 +            AC_MSG_RESULT([yes, found in library but not in header])\r
72 +            MYSQL_NEEDS_LOAD_DEFAULTS_DECLARATION=yes\r
73 +        else\r
74 +            HAVE_MYSQL=no\r
75 +            MYSQL_LIB=\r
76 +            MYSQL_INC=\r
77 +            AC_MSG_ERROR([Cannot find load_defaults()])\r
78 +        fi\r
79 +      fi\r
80 +      rm -f testmysql.*\r
81 +      rm -f testmysql\r
82 +\r
83         ;;\r
84    esac\r
85 @@ -2469,4 +2494,5 @@\r
86  AC_SUBST(MYSQL_INC,$MYSQL_INC)\r
87  AC_SUBST(MYSQL_LIB,$MYSQL_LIB)\r
88 +AC_SUBST(MYSQL_NEEDS_LOAD_DEFAULTS_DECLARATION,$MYSQL_NEEDS_LOAD_DEFAULTS_DECLARATION)\r
89  \r
90  dnl ---------------------------------------------------------------------------\r
91 Index: /trunk/gdal/ogr/ogrsf_frmts/mysql/GNUmakefile\r
92 ===================================================================\r
93 --- /trunk/gdal/ogr/ogrsf_frmts/mysql/GNUmakefile       (revision 15888)\r
94 +++ /trunk/gdal/ogr/ogrsf_frmts/mysql/GNUmakefile       (revision 26582)\r
95 @@ -8,4 +8,9 @@\r
96  CPPFLAGS       :=      -I.. -I../.. $(GDAL_INCLUDE) $(MYSQL_INC) $(CPPFLAGS)\r
97  \r
98 +ifeq ($(MYSQL_NEEDS_LOAD_DEFAULTS_DECLARATION),yes)\r
99 +CPPFLAGS +=   -DMYSQL_NEEDS_LOAD_DEFAULTS_DECLARATION\r
100 +endif\r
101 +\r
102 +\r
103  default:       $(O_OBJ:.o=.$(OBJ_EXT))\r
104  \r
105 Index: /trunk/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp\r
106 ===================================================================\r
107 --- /trunk/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp    (revision 26506)\r
108 +++ /trunk/gdal/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp    (revision 26582)\r
109 @@ -37,4 +37,14 @@\r
110  #include "cpl_string.h"\r
111  \r
112 +/* Recent versions of mysql no longer declare load_defaults() in my_sys.h */\r
113 +/* but they still have it in the lib. Very fragile... */\r
114 +#ifdef MYSQL_NEEDS_LOAD_DEFAULTS_DECLARATION\r
115 +extern "C" {\r
116 +int load_defaults(const char *conf_file, const char **groups,\r
117 +                  int *argc, char ***argv);\r
118 +void free_defaults(char **argv);\r
119 +}\r
120 +#endif\r
121 +\r
122  CPL_CVSID("$Id$");\r
123  /************************************************************************/\r
124 Index: /trunk/gdal/GDALmake.opt.in\r
125 ===================================================================\r
126 --- /trunk/gdal/GDALmake.opt.in (revision 26296)\r
127 +++ /trunk/gdal/GDALmake.opt.in (revision 26582)\r
128 @@ -127,4 +127,5 @@\r
129  MYSQL_LIB  =   @MYSQL_LIB@\r
130  MYSQL_INC  =   @MYSQL_INC@\r
131 +MYSQL_NEEDS_LOAD_DEFAULTS_DECLARATION  =    @MYSQL_NEEDS_LOAD_DEFAULTS_DECLARATION@\r
132  LIBS      +=   $(MYSQL_LIB)\r
133  \r
134 Index: /trunk/gdal/configure\r
135 ===================================================================\r
136 --- /trunk/gdal/configure       (revision 26582)\r
137 +++ /trunk/gdal/configure       (revision 26583)\r
138 @@ -23317,5 +23317,5 @@\r
139        echo '#include "my_sys.h"' >> testmysql.cpp\r
140        echo 'int main(int argc, char** argv) { load_defaults(0, 0, 0, 0); return 0; } ' >> testmysql.cpp\r
141 -      if test -z "`${CXX} ${CXXFLAGS} ${MYSQL_INC} ${MYSQL_LIB} testmysql.cpp -o testmysql 2>&1`" ; then\r
142 +      if test -z "`${CXX} ${CXXFLAGS} ${MYSQL_INC} -o testmysql testmysql.cpp ${MYSQL_LIB} 2>&1`" ; then\r
143          { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, found in my_sys.h" >&5\r
144  $as_echo "yes, found in my_sys.h" >&6; }\r
145 @@ -23323,5 +23323,5 @@\r
146          echo 'extern "C" void load_defaults(const char *conf_file, const char **groups, int *argc, char ***argv);' > testmysql.cpp\r
147          echo 'int main(int argc, char** argv) { load_defaults(0, 0, 0, 0); return 0; } ' >> testmysql.cpp\r
148 -        if test -z "`${CXX} ${CXXFLAGS} ${MYSQL_INC} ${MYSQL_LIB} testmysql.cpp -o testmysql 2>&1`" ; then\r
149 +        if test -z "`${CXX} ${CXXFLAGS} ${MYSQL_INC} -o testmysql testmysql.cpp ${MYSQL_LIB} 2>&1`" ; then\r
150              { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, found in library but not in header" >&5\r
151  $as_echo "yes, found in library but not in header" >&6; }\r
152 Index: /trunk/gdal/configure.in\r
153 ===================================================================\r
154 --- /trunk/gdal/configure.in    (revision 26582)\r
155 +++ /trunk/gdal/configure.in    (revision 26583)\r
156 @@ -2469,10 +2469,10 @@\r
157        echo '#include "my_sys.h"' >> testmysql.cpp\r
158        echo 'int main(int argc, char** argv) { load_defaults(0, 0, 0, 0); return 0; } ' >> testmysql.cpp\r
159 -      if test -z "`${CXX} ${CXXFLAGS} ${MYSQL_INC} ${MYSQL_LIB} testmysql.cpp -o testmysql 2>&1`" ; then\r
160 +      if test -z "`${CXX} ${CXXFLAGS} ${MYSQL_INC} -o testmysql testmysql.cpp ${MYSQL_LIB} 2>&1`" ; then\r
161          AC_MSG_RESULT([yes, found in my_sys.h])\r
162        else\r
163          echo 'extern "C" void load_defaults(const char *conf_file, const char **groups, int *argc, char ***argv);' > testmysql.cpp\r
164          echo 'int main(int argc, char** argv) { load_defaults(0, 0, 0, 0); return 0; } ' >> testmysql.cpp\r
165 -        if test -z "`${CXX} ${CXXFLAGS} ${MYSQL_INC} ${MYSQL_LIB} testmysql.cpp -o testmysql 2>&1`" ; then\r
166 +        if test -z "`${CXX} ${CXXFLAGS} ${MYSQL_INC} -o testmysql testmysql.cpp ${MYSQL_LIB} 2>&1`" ; then\r
167              AC_MSG_RESULT([yes, found in library but not in header])\r
168              MYSQL_NEEDS_LOAD_DEFAULTS_DECLARATION=yes\r
This page took 0.076415 seconds and 2 git commands to generate.