Date: Fri, 31 Mar 2000 20:57:28 -0500 From: "Thimble Smith" <tim@mysql.com> To: Kris Kennaway <kris@FreeBSD.org>, dirk@FreeBSD.org Cc: freebsd-stable@FreeBSD.org Subject: Re: please help - thread-safe mysql client link problem Message-ID: <20000331205728.B15870@threads.polyesthetic.msg> In-Reply-To: <Pine.BSF.4.21.0003311157440.95920-100000@freefall.freebsd.org>; from kris@FreeBSD.org on Fri, Mar 31, 2000 at 11:58:51AM -0800 References: <20000331080352.G76293@threads.polyesthetic.msg> <Pine.BSF.4.21.0003311157440.95920-100000@freefall.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Mar 31, 2000 at 11:58:51AM -0800, Kris Kennaway wrote:
>On Fri, 31 Mar 2000, Thimble Smith wrote:
>> The port doesn't have an option for building a thread-safe client,
>> either (unless it's hidden somewhere that I didn't see it).
>
>It uses the same options as the server makefile, so
>'make NATIVE_THREADS=1 all install clean' should work for the client or
>the server.
MySQL doesn't make thread-safe client libs unless you pass the
--enable-thread-safe-client flag to configure. Here'a a patch
to mysql322-server/Makefile that will cause this to happen if
THREAD_SAFE_CLIENT is set in the environment:
--- Makefile.orig Fri Mar 31 20:17:25 2000
+++ Makefile Fri Mar 31 20:53:30 2000
@@ -34,11 +34,10 @@
INSTALL_SCRIPT="${INSTALL_SCRIPT}" \
CONFIGURE_ARGS="${CONFIGURE_ARGS}"
-.if !defined(CLIENT_ONLY)
-RUN_DEPENDS= mysql:${PORTSDIR}/databases/mysql322-client
-
.include <bsd.port.pre.mk>
+.if !defined(CLIENT_ONLY) || defined(THREAD_SAFE_CLIENT)
+
.if ${OSVERSION} >= 320000
.if defined(MIT_PTHREADS)
CONFIGURE_ARGS+= --with-mit-threads=yes
@@ -90,6 +89,11 @@
@${ECHO}
.endif
+.endif # !CLIENT_ONLY || THREAD_SAFE_CLIENT
+
+.if !defined(CLIENT_ONLY)
+RUN_DEPENDS= mysql:${PORTSDIR}/databases/mysql322-client
+
post-patch:
${MV} ${WRKSRC}/strings/strings-x86.s ${WRKSRC}/strings/strings-x86.S
${MV} ${WRKSRC}/strings/longlong2str-x86.s ${WRKSRC}/strings/longlong2str-x86.S
@@ -140,6 +144,17 @@
.else
MAN1= mysql.1
+.if defined(THREAD_SAFE_CLIENT)
+CONFIGURE_ARGS+=--enable-thread-safe-client
+.else
+pre-fetch:
+ @${ECHO} ""
+ @${ECHO} "You may set THREAD_SAFE_CLIENT (make THREAD_SAFE_CLIENT=yes)"
+ @${ECHO} "to compile a thread-safe libmysqlclient. (You should not"
+ @${ECHO} "do this unless you are linking with threaded applications.)"
+ @${ECHO} ""
+.endif
+
CONFIGURE_ARGS+=--without-server
MAKE_ENV= CLIENT_ONLY="${CLIENT_ONLY}"
@@ -151,5 +166,5 @@
${SETENV} OBJFORMAT=${PORTOBJFORMAT} ${LDCONFIG} -m ${PREFIX}/lib/mysql
-.include <bsd.port.mk>
+.include <bsd.port.post.mk>
.endif
I'm not super-familiar with the ports structure, so I may have
botched something. Dirk, if this looks okay (or can be salvaged
into something that is okay), could you commit it?
Thanks,
Tim
--
Tim Smith < tim@mysql.com > :MySQL Development Team: Boone, NC USA.
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000331205728.B15870>
