changeset 787:d57d5de5d4b2

fixed dependencies for the shared psql plugin in package qt The postgresql library -lpq depends on -lsecure32, -lssl, and so on. These are static libraries. When we build the psql plugin as a shared library, linking fails unless we provide the list of required libraries. Previously, this was taken care of with a hack in the configure script. Since that hack is not suitable for an upstream merge request, I have moved it here.
author Mark Brand <mabrand@mabrand.nl>
date Thu, 18 Feb 2010 01:56:41 +0100
parents d3d9a4a2843d
children 0b75930ca822
files src/qt-win32.patch src/qt.mk
diffstat 2 files changed, 20 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/src/qt-win32.patch	Wed Feb 17 21:57:56 2010 +0100
+++ b/src/qt-win32.patch	Thu Feb 18 01:56:41 2010 +0100
@@ -2,7 +2,7 @@
 See doc/index.html for further information.
 
 diff --git a/configure b/configure
-index ed5891f..1a3f573 100755
+index ed5891f..9b14df3 100755
 --- a/configure
 +++ b/configure
 @@ -605,7 +605,7 @@ mkdir -p "$outpath/config.tests"
@@ -158,11 +158,12 @@
         CFG_LIBPNG=system
      else
         CFG_LIBPNG=qt
-@@ -4686,7 +4727,12 @@ for _SQLDR in $CFG_SQL_AVAILABLE; do
+@@ -4686,7 +4727,13 @@ for _SQLDR in $CFG_SQL_AVAILABLE; do
                  fi
                  [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
                  [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
 -                if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $L_FLAGS $QT_CFLAGS_PSQL $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
++                QT_LFLAGS_PSQL="$QT_LFLAGS_PSQL $PSQL_LIBS"
 +                if [ "$XPLATFORM" = "win32-g++" ]; then
 +                    echo "Skipping test for PSQL in cross build for win32-g++"
 +                    if [ "$CFG_SQL_psql" = "auto" ]; then
@@ -172,7 +173,7 @@
                      if [ "$CFG_SQL_psql" = "auto" ]; then
                          CFG_SQL_psql=plugin
                      fi
-@@ -4707,7 +4753,10 @@ for _SQLDR in $CFG_SQL_AVAILABLE; do
+@@ -4707,7 +4754,10 @@ for _SQLDR in $CFG_SQL_AVAILABLE; do
          ;;
          odbc)
              if [ "$CFG_SQL_odbc" != "no" ]; then
@@ -184,7 +185,7 @@
                      if [ "$CFG_SQL_odbc" = "auto" ]; then
                          CFG_SQL_odbc=plugin
                      fi
-@@ -4752,7 +4801,12 @@ for _SQLDR in $CFG_SQL_AVAILABLE; do
+@@ -4752,7 +4802,12 @@ for _SQLDR in $CFG_SQL_AVAILABLE; do
              ;;
          tds)
              if [ "$CFG_SQL_tds" != "no" ]; then
@@ -198,7 +199,7 @@
                      if [ "$CFG_SQL_tds" = "auto" ]; then
                          CFG_SQL_tds=plugin
                      fi
-@@ -4834,7 +4888,13 @@ for _SQLDR in $CFG_SQL_AVAILABLE; do
+@@ -4834,7 +4889,13 @@ for _SQLDR in $CFG_SQL_AVAILABLE; do
                          QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
                          QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
                      fi
@@ -213,7 +214,7 @@
                          if [ "$CFG_SQL_sqlite" = "auto" ]; then
                              CFG_SQL_sqlite=plugin
                          fi
-@@ -4905,7 +4965,9 @@ fi
+@@ -4905,7 +4966,9 @@ fi
  
  # auto-detect iconv(3) support
  if [ "$CFG_ICONV" != "no" ]; then
@@ -224,7 +225,7 @@
  	CFG_ICONV=no
      elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" "$OPT_VERBOSE" "$relpath" "$outpath" "config.tests/unix/iconv" "POSIX iconv" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
          CFG_ICONV=yes
-@@ -5065,7 +5127,9 @@ if [ "$PLATFORM_X11" = "yes" ]; then
+@@ -5065,7 +5128,9 @@ if [ "$PLATFORM_X11" = "yes" ]; then
          echo "Basic XLib functionality test failed!"
          echo " You might need to modify the include and library search paths by editing"
          echo " QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in ${XQMAKESPEC}."
@@ -235,7 +236,7 @@
      fi
  
      # auto-detect OpenGL support (es1 = OpenGL ES 1.x Common, es1cl = ES 1.x common lite, es2 = OpenGL ES 2.x)
-@@ -5139,7 +5203,9 @@ if [ "$PLATFORM_X11" = "yes" ]; then
+@@ -5139,7 +5204,9 @@ if [ "$PLATFORM_X11" = "yes" ]; then
              echo " You might need to modify the include and library search paths by editing"
              echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
              echo " ${XQMAKESPEC}."
@@ -246,7 +247,7 @@
          fi
          case "$PLATFORM" in
          hpux*)
-@@ -5640,7 +5706,10 @@ if [ "$CFG_DOUBLEFORMAT" = "auto" ]; then
+@@ -5640,7 +5707,10 @@ if [ "$CFG_DOUBLEFORMAT" = "auto" ]; then
  fi
  
  HAVE_STL=no
@@ -258,7 +259,7 @@
      HAVE_STL=yes
  fi
  
-@@ -5662,7 +5731,10 @@ fi
+@@ -5662,7 +5732,10 @@ fi
  
  # find if the platform supports IPv6
  if [ "$CFG_IPV6" != "no" ]; then
@@ -270,7 +271,7 @@
          CFG_IPV6=yes
      else
          if [ "$CFG_IPV6" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
-@@ -5776,7 +5848,10 @@ fi
+@@ -5776,7 +5849,10 @@ fi
  
  # find if the platform supports X/Open Large File compilation environment
  if [ "$CFG_LARGEFILE" != "no" ]; then
@@ -282,7 +283,7 @@
          CFG_LARGEFILE=yes
      else
          if [ "$CFG_LARGEFILE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
-@@ -5793,7 +5868,9 @@ fi
+@@ -5793,7 +5869,9 @@ fi
  
  # detect OpenSSL
  if [ "$CFG_OPENSSL" != "no" ]; then
@@ -293,7 +294,7 @@
          if [ "$CFG_OPENSSL" = "auto" ]; then
              CFG_OPENSSL=yes
          fi
-@@ -6141,6 +6218,7 @@ fi
+@@ -6141,6 +6219,7 @@ fi
  [ "$CFG_3DNOW" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG 3dnow"
  [ "$CFG_SSE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse"
  [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
@@ -301,7 +302,7 @@
  [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
  [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
  [ "$PLATFORM_MAC" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG $CFG_MAC_ARCHS"
-@@ -6222,11 +6300,12 @@ else
+@@ -6222,11 +6301,12 @@ else
      QT_CONFIG="$QT_CONFIG freetype"
  fi
  
@@ -319,7 +320,7 @@
  if [ "$CFG_ZLIB" = "yes" ]; then
      QT_CONFIG="$QT_CONFIG zlib"
  elif [ "$CFG_ZLIB" = "system" ]; then
-@@ -7161,7 +7240,7 @@ fi
+@@ -7161,7 +7241,7 @@ fi
  
  cat >>"$QTCONFIG.tmp" <<EOF
  #configuration
@@ -328,7 +329,7 @@
  QT_ARCH = $CFG_ARCH
  QT_EDITION = $Edition
  QT_CONFIG += $QT_CONFIG
-@@ -7434,7 +7513,7 @@ fi
+@@ -7434,7 +7514,7 @@ fi
  echo "Declarative module .. $CFG_DECLARATIVE"
  echo "STL support ......... $CFG_STL"
  echo "PCH support ......... $CFG_PRECOMPILE"
@@ -337,7 +338,7 @@
  if [ "$CFG_ARCH" = "arm" ] || [ "$CFG_ARCH" = "armv6" ]; then
      echo "iWMMXt support ...... ${CFG_IWMMXT}"
      echo "NEON support ........ ${CFG_NEON}"
-@@ -7752,7 +7831,11 @@ for file in .projects .projects.3; do
+@@ -7752,7 +7832,11 @@ for file in .projects .projects.3; do
          [ "$IN_ROOT" = "no" ] && continue
  
          case $a in
--- a/src/qt.mk	Wed Feb 17 21:57:56 2010 +0100
+++ b/src/qt.mk	Thu Feb 18 01:56:41 2010 +0100
@@ -93,7 +93,8 @@
     # We prefer static mingw-cross-env system libs for static build:
     # -system-zlib -system-libpng -system-libjpeg -system-libtiff -system-libmng -system-sqlite
     # There is no -system-gif option. NB -system-libmng will not link in shared build.
-    cd '$(1)' && ./configure \
+    # Linking PSQL shared plugin requires PSQL_LIBS. Harmless for static build.
+    cd '$(1)' && PSQL_LIBS="-lpq -lsecur32 $(shell $(TARGET)-pkg-config --static --libs-only-l openssl)" ./configure \
         -opensource \
         -confirm-license \
         -xplatform win32-g++ \