mirror of
https://github.com/crazywhalecc/static-php-cli.git
synced 2026-03-17 20:34:51 +08:00
fix odbc libs when iconv is built too
This commit is contained in:
parent
c433aed521
commit
00892c20fa
@ -269,7 +269,10 @@ class SourcePatcher
|
||||
if ($version === '5.1.3') {
|
||||
self::patchFile('spc_fix_swoole_50513.patch', SOURCE_PATH . '/php-src/ext/swoole');
|
||||
}
|
||||
// remove when https://github.com/swoole/swoole-src/pull/5848 is merged
|
||||
self::patchFile('swoole_fix_date_time.patch', SOURCE_PATH . '/php-src/ext/swoole');
|
||||
// remove when https://github.com/swoole/swoole-src/pull/5847 is merged
|
||||
self::patchFile('swoole_fix_odbclibs.patch', SOURCE_PATH . '/php-src/ext/swoole');
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
90
src/globals/patch/swoole_fix_odbclibs.patch
Normal file
90
src/globals/patch/swoole_fix_odbclibs.patch
Normal file
@ -0,0 +1,90 @@
|
||||
From d4942a590a301a2552f8885962640f38d60de27b Mon Sep 17 00:00:00 2001
|
||||
From: DubbleClick <m@pyc.ac>
|
||||
Date: Tue, 26 Aug 2025 00:08:32 +0700
|
||||
Subject: [PATCH] add SWOOLE_ODBC_LIBC variable if the odbc library needs more
|
||||
than to link against a single library
|
||||
|
||||
---
|
||||
config.m4 | 57 ++++++++++++++++++++++++++++++++++++++++++-------------
|
||||
1 file changed, 44 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/config.m4 b/config.m4
|
||||
index 1583cb81c8..683d8891af 100644
|
||||
--- a/config.m4
|
||||
+++ b/config.m4
|
||||
@@ -641,31 +641,62 @@ EOF
|
||||
AC_MSG_ERROR([Cannot find header file(s) for pdo_odbc])
|
||||
fi
|
||||
|
||||
+ if test -n "$SWOOLE_ODBC_LIBS"; then
|
||||
+ ODBC_LIBS="$SWOOLE_ODBC_LIBS"
|
||||
+ else
|
||||
+ ODBC_LIBS="-l$pdo_odbc_def_lib"
|
||||
+ fi
|
||||
+
|
||||
PDO_ODBC_INCLUDE="$pdo_odbc_def_cflags -I$PDO_ODBC_INCDIR -DPDO_ODBC_TYPE=\\\"$pdo_odbc_flavour\\\""
|
||||
- PDO_ODBC_LDFLAGS="$pdo_odbc_def_ldflags -L$PDO_ODBC_LIBDIR -l$pdo_odbc_def_lib"
|
||||
+ PDO_ODBC_LDFLAGS="$pdo_odbc_def_ldflags -L$PDO_ODBC_LIBDIR $ODBC_LIBS"
|
||||
|
||||
PHP_EVAL_LIBLINE([$PDO_ODBC_LDFLAGS], [SWOOLE_SHARED_LIBADD])
|
||||
|
||||
EXTRA_CFLAGS="$EXTRA_CFLAGS -I$pdo_cv_inc_path $PDO_ODBC_INCLUDE"
|
||||
|
||||
dnl Check first for an ODBC 1.0 function to assert that the libraries work
|
||||
- PHP_CHECK_LIBRARY($pdo_odbc_def_lib, SQLBindCol,
|
||||
- [
|
||||
- dnl And now check for an ODBC 3.0 function to assert that they are *good*
|
||||
- dnl libraries.
|
||||
- PHP_CHECK_LIBRARY($pdo_odbc_def_lib, SQLAllocHandle,
|
||||
- [], [
|
||||
- AC_MSG_ERROR([
|
||||
+ save_LIBS="$LIBS"
|
||||
+ LIBS="$LIBS $PDO_ODBC_LDFLAGS"
|
||||
+
|
||||
+ AC_LINK_IFELSE(
|
||||
+ [AC_LANG_PROGRAM(
|
||||
+ [[#include <sql.h>
|
||||
+ #include <sqlext.h>]],
|
||||
+ [[
|
||||
+ SQLLEN ind = 0;
|
||||
+ char buf[1];
|
||||
+ SQLBindCol((SQLHSTMT)0, (SQLUSMALLINT)1, (SQLSMALLINT)SQL_C_CHAR,
|
||||
+ (SQLPOINTER)buf, (SQLLEN)sizeof(buf), &ind);
|
||||
+ return 0;
|
||||
+ ]])],
|
||||
+ [
|
||||
+ dnl And now check for an ODBC 3.0 function to assert that they are *good*
|
||||
+ dnl libraries.
|
||||
+ AC_LINK_IFELSE(
|
||||
+ [AC_LANG_PROGRAM(
|
||||
+ [[#include <sql.h>
|
||||
+ #include <sqlext.h>]],
|
||||
+ [[
|
||||
+ SQLHANDLE out = SQL_NULL_HANDLE;
|
||||
+ SQLAllocHandle((SQLSMALLINT)SQL_HANDLE_ENV,
|
||||
+ (SQLHANDLE)SQL_NULL_HANDLE, &out);
|
||||
+ return 0;
|
||||
+ ]])],
|
||||
+ [],
|
||||
+ [AC_MSG_ERROR([
|
||||
Your ODBC library does not appear to be ODBC 3 compatible.
|
||||
You should consider using iODBC or unixODBC instead, and loading your
|
||||
libraries as a driver in that environment; it will emulate the
|
||||
functions required for PDO support.
|
||||
- ])], $PDO_ODBC_LDFLAGS)
|
||||
- ],[
|
||||
- AC_MSG_ERROR([Your ODBC library does not exist or there was an error. Check config.log for more information])
|
||||
- ], $PDO_ODBC_LDFLAGS)
|
||||
+ ])]
|
||||
+ )
|
||||
+ ],
|
||||
+ [AC_MSG_ERROR([Your ODBC library does not exist or there was an error. Check config.log for more information])]
|
||||
+ )
|
||||
+
|
||||
+ LIBS="$save_LIBS"
|
||||
|
||||
- AC_DEFINE(SW_USE_ODBC, 1, [do we enable swoole-odbc coro support])
|
||||
+ AC_DEFINE(SW_USE_ODBC, 1, [do we enable swoole-odbc coro support])
|
||||
fi
|
||||
|
||||
dnl odbc end
|
||||
Loading…
x
Reference in New Issue
Block a user