Skip Menu |
 

This queue is for tickets about the DBD-mysql CPAN distribution.

Report information
The Basics
Id: 100898
Status: resolved
Priority: 0/
Queue: DBD-mysql

People
Owner: Nobody in particular
Requestors: valkoles [...] gmail.com
Cc: pali [...] cpan.org
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



MIME-Version: 1.0
X-Spam-Status: No, score=-3.842 tagged_above=-99.9 required=10 tests=[AWL=-1.143, BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham
X-Spam-Flag: NO
X-Virus-Checked: Checked
content-type: text/plain; charset="utf-8"
Message-ID: <CAAVX1acROVsaBHs-wd467SMPQEpBmZd_cfVPLH3FWF3PbYyJzQ [...] mail.gmail.com>
X-Received: by 10.202.81.88 with SMTP id f85mr303662oib.100.1418491404669; Sat, 13 Dec 2014 09:23:24 -0800 (PST)
X-Virus-Scanned: Debian amavisd-new at bestpractical.com
X-Spam-Score: -3.842
Received: from localhost (localhost [127.0.0.1]) by hipster.bestpractical.com (Postfix) with ESMTP id 54DC02400B9 for <cpan-bug+dbd-mysql [...] hipster.bestpractical.com>; Sat, 13 Dec 2014 12:23:38 -0500 (EST)
Received: from hipster.bestpractical.com ([127.0.0.1]) by localhost (hipster.bestpractical.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id uIkr6JRhpGmD for <cpan-bug+dbd-mysql [...] hipster.bestpractical.com>; Sat, 13 Dec 2014 12:23:35 -0500 (EST)
Received: from la.mx.develooper.com (x1.develooper.com [207.171.7.70]) by hipster.bestpractical.com (Postfix) with SMTP id EB17A2400A8 for <bug-dbd-mysql [...] rt.cpan.org>; Sat, 13 Dec 2014 12:23:34 -0500 (EST)
Received: (qmail 7684 invoked by alias); 13 Dec 2014 17:23:33 -0000
Received: from mail-ob0-f170.google.com (HELO mail-ob0-f170.google.com) (209.85.214.170) by la.mx.develooper.com (qpsmtpd/0.28) with ESMTP; Sat, 13 Dec 2014 09:23:28 -0800
Received: by mail-ob0-f170.google.com with SMTP id wp18so12535566obc.1 for <bug-dbd-mysql [...] rt.cpan.org>; Sat, 13 Dec 2014 09:23:24 -0800 (PST)
Received: by 10.182.212.66 with HTTP; Sat, 13 Dec 2014 09:23:24 -0800 (PST)
Authentication-Results: hipster.bestpractical.com (amavisd-new); dkim=pass header.i= [...] gmail.com
Delivered-To: cpan-bug+dbd-mysql [...] hipster.bestpractical.com
Subject: compiling fails with mariadb-10.0.14-winx64 on windows 7 (64)
Return-Path: <valkoles [...] gmail.com>
X-RT-Mail-Extension: dbd-mysql
X-Original-To: cpan-bug+dbd-mysql [...] hipster.bestpractical.com
X-Spam-Check-BY: la.mx.develooper.com
Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=JpQlZRdCB8zKdQydNf9OrEG2S1DkbPy4gpKQKuG0tfs=; b=NTTLUgNdJoRBkQHh0yVTQ5HNxDn9LpE0dfSptJlcTBv6Lha8S03dCpOQohHBXEPlgk EuX4P6DgG51fsmclYqhDGWKUqsSHvi/Z3gsHmbNLAGooR/1FcCxObr2HY8YvS0sBQ18C Vzfb7kGFqhbXqKJHUTrgjKcrwrIio3pmcluP4NpbhiOob0xpCEbo5yadAdjC7fvpzFLM kNSZKeGWAZXg4zN6C2+2WCjoPsdG/2JhSrQocFLobN+VFa+AYipZUaFBmXMRVs+Smik8 rZJ/W1ha/F1QqrUInAIAQFvMfvQAw/cLtuww0MnPoUpsNOeM8nZuRMI0P+NkudaiAl89 ET4w==
Date: Sat, 13 Dec 2014 12:23:24 -0500
X-Spam-Level:
To: bug-dbd-mysql [...] rt.cpan.org
From: val <valkoles [...] gmail.com>
X-RT-Original-Encoding: utf-8
X-RT-Interface: Email
Content-Length: 25148
Download (untitled) / with headers
text/plain 24.5k

Message body is not shown because it is too large.

MIME-Version: 1.0
In-Reply-To: <CAAVX1acROVsaBHs-wd467SMPQEpBmZd_cfVPLH3FWF3PbYyJzQ [...] mail.gmail.com>
X-Mailer: MIME-tools 5.504 (Entity 5.504)
Content-Disposition: inline
X-RT-Interface: Web
References: <CAAVX1acROVsaBHs-wd467SMPQEpBmZd_cfVPLH3FWF3PbYyJzQ [...] mail.gmail.com>
Content-Type: text/plain; charset="utf-8"
Message-ID: <rt-4.0.18-15109-1479646046-1653.100898-0-0 [...] rt.cpan.org>
Content-Transfer-Encoding: binary
X-RT-Original-Encoding: utf-8
X-RT-Encrypt: 0
X-RT-Sign: 0
Content-Length: 223
Download (untitled) / with headers
text/plain 223b
On Sob Dec 13 12:23:39 2014, valkoles@gmail.com wrote: Show quoted text
> Warning (mostly harmless): No library found for -lmysql
It means that you did not installed mysql library and header files. Without it DBD::mysql cannot be compiled.
MIME-Version: 1.0
In-Reply-To: <CAAVX1acROVsaBHs-wd467SMPQEpBmZd_cfVPLH3FWF3PbYyJzQ [...] mail.gmail.com>
X-Mailer: MIME-tools 5.504 (Entity 5.504)
X-RT-Interface: Web
References: <CAAVX1acROVsaBHs-wd467SMPQEpBmZd_cfVPLH3FWF3PbYyJzQ [...] mail.gmail.com>
Content-Type: multipart/mixed; boundary="----------=_1479670055-22257-2"
Message-ID: <rt-4.0.18-22257-1479670055-1079.100898-0-0 [...] rt.cpan.org>
X-RT-Original-Encoding: utf-8
X-RT-Encrypt: 0
X-RT-Sign: 0
Content-Length: 0
Content-Disposition: inline
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: binary
X-RT-Original-Encoding: utf-8
Content-Length: 936
Download (untitled) / with headers
text/plain 936b
But it is installed: C:\Users\val>mysql_config Usage: C:\soft\mariadb\bin\mysql_config.pl [OPTIONS] Options: --cflags ["-IC:\soft\mariadb/include/mysql"] --include ["-IC:\soft\mariadb/include/mysql"] --libs ["C:\soft\mariadb/lib/mysqlclient.lib" "wsock32.lib" "advapi32.lib" "user32.lib"] --libs_r ["C:\soft\mariadb/lib/mysqlclient.lib" "wsock32.lib" "advapi32.lib" "user32.lib" "-lmysqlclient ws2_32 IPHLPAPI "] --socket [/tmp/mysql.sock] --port [0] --version [10.1.19] --libmysqld-libs ["C:\soft\mariadb/lib/mysqlserver.lib" "wsock32.lib" "advapi32.lib" "user32.lib" "-lmysqlclient ws2_32 IPHLPAPI "] this is unpacked mariadb-10.1.19-winx64.zip and I believe it has all required headers and libs though 4.039 is still failing. 'libs' somehow is empty in the attached log libs (mysql_config) =
MIME-Version: 1.0
Subject: DBD-mysql-4.039-1479588415.log
X-Mailer: MIME-tools 5.504 (Entity 5.504)
Content-Type: application/octet-stream; name="DBD-mysql-4.039-1479588415.log"
Content-Disposition: inline; filename="DBD-mysql-4.039-1479588415.log"
Content-Transfer-Encoding: base64
Content-Length: 26821
Download DBD-mysql-4.039-1479588415.log
application/octet-stream 26.1k

Message body not shown because it is not plain text.

MIME-Version: 1.0
In-Reply-To: <rt-4.0.18-22257-1479670055-1079.100898-0-0 [...] rt.cpan.org>
X-Mailer: MIME-tools 5.504 (Entity 5.504)
X-RT-Interface: Web
References: <CAAVX1acROVsaBHs-wd467SMPQEpBmZd_cfVPLH3FWF3PbYyJzQ [...] mail.gmail.com> <rt-4.0.18-22257-1479670055-1079.100898-0-0 [...] rt.cpan.org>
Content-Type: multipart/mixed; boundary="----------=_1479672440-20779-2"
Message-ID: <rt-4.0.18-20779-1479672440-439.100898-0-0 [...] rt.cpan.org>
X-RT-Original-Encoding: utf-8
X-RT-Encrypt: 0
X-RT-Sign: 0
Content-Length: 0
Content-Disposition: inline
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: binary
X-RT-Original-Encoding: utf-8
Content-Length: 1734
Download (untitled) / with headers
text/plain 1.6k
On Ned Nov 20 14:27:35 2016, VAL wrote: Show quoted text
> But it is installed: > > C:\Users\val>mysql_config > Usage: C:\soft\mariadb\bin\mysql_config.pl [OPTIONS] > Options: > --cflags ["-IC:\soft\mariadb/include/mysql"] > --include ["-IC:\soft\mariadb/include/mysql"] > --libs ["C:\soft\mariadb/lib/mysqlclient.lib" "wsock32.lib" "advapi32.lib" "user32.lib"] > --libs_r ["C:\soft\mariadb/lib/mysqlclient.lib" "wsock32.lib" "advapi32.lib" "user32.lib" "-lmysqlclient ws2_32 IPHLPAPI "] > --socket [/tmp/mysql.sock] > --port [0] > --version [10.1.19] > --libmysqld-libs ["C:\soft\mariadb/lib/mysqlserver.lib" "wsock32.lib" "advapi32.lib" "user32.lib" "-lmysqlclient ws2_32 IPHLPAPI "] > > this is unpacked mariadb-10.1.19-winx64.zip and I believe it has all > required headers and libs > > though 4.039 is still failing. 'libs' somehow is empty in the > attached log > libs (mysql_config) =
Hmm... In log I see: Show quoted text
> cflags (mysql_config) = "-IC:\soft\mariadb/include/mysql" > > embedded (mysql_config) = > > ldflags (guessed ) = "C:\soft\mariadb/lib/mysqlclient.lib" "wsock32.lib" "advapi32.lib" "user32.lib" > > libs (mysql_config) =
It means that either Makefile.PL incorrectly parsed mysql_config output, or mysql_config output is in some wrong format. Please provide output from commands: mysql_config --libs mysql_config --cflags mysql_config --include As a quick looks it looks like that Makefile.PL expect that library param starts with -l or -L. In above case with absolute paths it looks like that libraries are without hyphen l/L. Can you try attached patch?
MIME-Version: 1.0
Subject: 0001-Fix-parsing-configure-libs-from-mysql_config-libs-ou.patch
X-Mailer: MIME-tools 5.504 (Entity 5.504)
Content-Type: application/octet-stream; name="0001-Fix-parsing-configure-libs-from-mysql_config-libs-ou.patch"
Content-Disposition: inline; filename="0001-Fix-parsing-configure-libs-from-mysql_config-libs-ou.patch"
Content-Transfer-Encoding: base64
Content-Length: 1120
From 844f827363f89331bba60bc97388dc9e2640d65b Mon Sep 17 00:00:00 2001 From: Pali <pali@cpan.org> Date: Sun, 20 Nov 2016 21:04:27 +0100 Subject: [PATCH] Fix parsing configure libs from mysql_config --libs output in Makefile.PL Libraries in mysql_config --libs output can be specified by library name with -l prefix or by absolute path to library name without any prefix. Parameters must start with a hyphen, so treat all options without leading hyphen in mysql_config --libs output as libraries with full path. --- Makefile.PL | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.PL b/Makefile.PL index 0e78f00..a2202a3 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -578,7 +578,7 @@ sub Configure { if ($param eq 'libs') { my (@libs, @ldflags); for (split ' ', $str) { - if (/^-[Ll]/) { push @libs, $_ } + if (/^-[Ll]/ || /^[^\-]/) { push @libs, $_ } else { push @ldflags, $_ } } $str = "@libs"; -- 1.7.9.5
MIME-Version: 1.0
In-Reply-To: <CAAVX1acROVsaBHs-wd467SMPQEpBmZd_cfVPLH3FWF3PbYyJzQ [...] mail.gmail.com>
X-Mailer: MIME-tools 5.504 (Entity 5.504)
X-RT-Interface: Web
References: <CAAVX1acROVsaBHs-wd467SMPQEpBmZd_cfVPLH3FWF3PbYyJzQ [...] mail.gmail.com>
Content-Type: multipart/mixed; boundary="----------=_1479673384-20779-9"
Message-ID: <rt-4.0.18-20779-1479673384-628.100898-0-0 [...] rt.cpan.org>
X-RT-Original-Encoding: utf-8
X-RT-Encrypt: 0
X-RT-Sign: 0
Content-Length: 0
Content-Disposition: inline
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: binary
X-RT-Original-Encoding: utf-8
Content-Length: 535
Download (untitled) / with headers
text/plain 535b
I was blaming Makefile.PL too. C:\Users\val>mysql_config --libs "C:\soft\mariadb/lib/mysqlclient.lib" "wsock32.lib" "advapi32.lib" "user32.lib" C:\Users\val>mysql_config --cflags "-IC:\soft\mariadb/include/mysql" C:\Users\val>mysql_config --include "-IC:\soft\mariadb/include/mysql" Applied patch. perl Makefile.PL > p_m_stdout 2> p_m_sderr # output in attached files dmake.exe > d_stdout 2> d_stderr # output in attached files before I was trying similar approach with adding -l / -L for the in the line you changed. No luck
MIME-Version: 1.0
Subject: d_stderr
X-Mailer: MIME-tools 5.504 (Entity 5.504)
Content-Type: application/octet-stream; name="d_stderr"
Content-Disposition: inline; filename="d_stderr"
Content-Transfer-Encoding: base64
Content-Length: 89729
Download d_stderr
application/octet-stream 87.6k

Message body not shown because it is not plain text.

Subject: d_stdout
MIME-Version: 1.0
Content-Type: application/octet-stream; name="d_stdout"
X-Mailer: MIME-tools 5.504 (Entity 5.504)
Content-Disposition: inline; filename="d_stdout"
Content-Transfer-Encoding: base64
Content-Length: 1915
Download d_stdout
application/octet-stream 1.8k

Message body not shown because it is not plain text.

MIME-Version: 1.0
Subject: p_m_sderr
X-Mailer: MIME-tools 5.504 (Entity 5.504)
Content-Type: application/octet-stream; name="p_m_sderr"
Content-Disposition: inline; filename="p_m_sderr"
Content-Transfer-Encoding: base64
Content-Length: 2401
Download p_m_sderr
application/octet-stream 2.3k

Message body not shown because it is not plain text.

Subject: p_m_stdout
MIME-Version: 1.0
Content-Type: application/octet-stream; name="p_m_stdout"
X-Mailer: MIME-tools 5.504 (Entity 5.504)
Content-Disposition: inline; filename="p_m_stdout"
Content-Transfer-Encoding: base64
Content-Length: 1853
Download p_m_stdout
application/octet-stream 1.8k

Message body not shown because it is not plain text.

MIME-Version: 1.0
In-Reply-To: <rt-4.0.18-20779-1479673384-628.100898-0-0 [...] rt.cpan.org>
X-Mailer: MIME-tools 5.504 (Entity 5.504)
Content-Disposition: inline
X-RT-Interface: Web
References: <CAAVX1acROVsaBHs-wd467SMPQEpBmZd_cfVPLH3FWF3PbYyJzQ [...] mail.gmail.com> <rt-4.0.18-20779-1479673384-628.100898-0-0 [...] rt.cpan.org>
Content-Type: text/plain; charset="utf-8"
Message-ID: <rt-4.0.18-24761-1479674763-760.100898-0-0 [...] rt.cpan.org>
Content-Transfer-Encoding: binary
X-RT-Original-Encoding: utf-8
X-RT-Encrypt: 0
X-RT-Sign: 0
Content-Length: 1574
Download (untitled) / with headers
text/plain 1.5k
On Ned Nov 20 15:23:04 2016, VAL wrote: Show quoted text
> I was blaming Makefile.PL too. > > C:\Users\val>mysql_config --libs > "C:\soft\mariadb/lib/mysqlclient.lib" "wsock32.lib" "advapi32.lib" "user32.lib"
First one is OK, it is file specified with full path without any leading hyphen. gcc and gnu linker can handle it. But I doubt that other 3 files can be located properly with gcc or gnu linker, as it can search for libraries only with -l param (in this case without "lib" prefix and ".lib" or ".a" suffix). Which compiler and linker are you using for compiling DBD::mysql? Show quoted text
> C:\Users\val>mysql_config --cflags > "-IC:\soft\mariadb/include/mysql" > > C:\Users\val>mysql_config --include > "-IC:\soft\mariadb/include/mysql"
Those are OK. Show quoted text
> Applied patch. > perl Makefile.PL > p_m_stdout 2> p_m_sderr > # output in attached files > > dmake.exe > d_stdout 2> d_stderr > # output in attached files > > > before I was trying similar approach with adding -l / -L for the in > the line you changed. No luck
Looks like my patch really fix problem with determinating if output from mysql_config --libs is library (either specified by -l syntax or by full path) or ordinary flag. Now there are problems with undefined references to internal windows symbols which are probably in those not found libraries... If you want to compile DBD::mysql I would suggest you to manually play with "perl Makefile.PL --libs=...". And specify all needed libs (ideally with full path). Maybe you need to link against some other windows libraries... But I do not know, I do not use windows system.
MIME-Version: 1.0
In-Reply-To: <rt-4.0.18-24761-1479674763-760.100898-0-0 [...] rt.cpan.org>
X-Mailer: MIME-tools 5.504 (Entity 5.504)
Content-Disposition: inline
X-RT-Interface: Web
References: <CAAVX1acROVsaBHs-wd467SMPQEpBmZd_cfVPLH3FWF3PbYyJzQ [...] mail.gmail.com> <rt-4.0.18-20779-1479673384-628.100898-0-0 [...] rt.cpan.org> <rt-4.0.18-24761-1479674763-760.100898-0-0 [...] rt.cpan.org>
Content-Type: text/plain; charset="utf-8"
Message-ID: <rt-4.0.18-19379-1479679139-459.100898-0-0 [...] rt.cpan.org>
Content-Transfer-Encoding: binary
X-RT-Original-Encoding: utf-8
X-RT-Encrypt: 0
X-RT-Sign: 0
Content-Length: 1942
Download (untitled) / with headers
text/plain 1.8k
On Sun Nov 20 15:46:03 2016, PALI wrote: Show quoted text
> On Ned Nov 20 15:23:04 2016, VAL wrote:
> > I was blaming Makefile.PL too. > > > > C:\Users\val>mysql_config --libs > > "C:\soft\mariadb/lib/mysqlclient.lib" "wsock32.lib" "advapi32.lib" > > "user32.lib"
> > First one is OK, it is file specified with full path without any > leading hyphen. gcc and gnu linker can handle it. > > But I doubt that other 3 files can be located properly with gcc or gnu > linker, as it can search for libraries only with -l param (in this > case without "lib" prefix and ".lib" or ".a" suffix).
Found G:\soft\mingw64\x86_64-w64-mingw32\lib\libwsock32.a G:\soft\mingw64\x86_64-w64-mingw32\lib\libadvapi32.a G:\soft\mingw64\x86_64-w64-mingw32\lib\libuser32.a Show quoted text
> Which compiler and linker are you using for compiling DBD::mysql?
x86_64-4.9.0-release-win32-seh-rt_v3-rev2.7z Show quoted text
> Looks like my patch really fix problem with determinating if output > from mysql_config --libs is library (either specified by -l syntax or > by full path) or ordinary flag. Now there are problems with undefined > references to internal windows symbols which are probably in those not > found libraries...
Show quoted text
> If you want to compile DBD::mysql I would suggest you to manually play > with "perl Makefile.PL --libs=...". And specify all needed libs > (ideally with full path). Maybe you need to link against some other > windows libraries... But I do not know, I do not use windows system.
What's the syntax for few args for --libs? --libs="c:/full/path/lib1" --libs="c:/another/lib2" or --libs="c:/full/path/lib1 c:/another/lib2" ? is there a way to define few paths to lib dirs and provide to --libs only filenames (without common path)? I'm just surprised that with same perl, build system it's possible to compile DBD::mysql against mysql, but not mariadb. And even mysql_config.pl in mariadb needs small fix to get it working at all (in sub get_full_path). Thanks for your help.
MIME-Version: 1.0
In-Reply-To: <rt-4.0.18-19379-1479679139-459.100898-0-0 [...] rt.cpan.org>
X-Mailer: MIME-tools 5.504 (Entity 5.504)
Content-Disposition: inline
X-RT-Interface: Web
References: <CAAVX1acROVsaBHs-wd467SMPQEpBmZd_cfVPLH3FWF3PbYyJzQ [...] mail.gmail.com> <rt-4.0.18-20779-1479673384-628.100898-0-0 [...] rt.cpan.org> <rt-4.0.18-24761-1479674763-760.100898-0-0 [...] rt.cpan.org> <rt-4.0.18-19379-1479679139-459.100898-0-0 [...] rt.cpan.org>
Content-Type: text/plain; charset="utf-8"
Message-ID: <rt-4.0.18-19379-1479680009-1134.100898-0-0 [...] rt.cpan.org>
Content-Transfer-Encoding: binary
X-RT-Original-Encoding: utf-8
X-RT-Encrypt: 0
X-RT-Sign: 0
Content-Length: 3340
Download (untitled) / with headers
text/plain 3.2k
On Ned Nov 20 16:58:59 2016, VAL wrote: Show quoted text
> On Sun Nov 20 15:46:03 2016, PALI wrote:
> > On Ned Nov 20 15:23:04 2016, VAL wrote:
> > > I was blaming Makefile.PL too. > > > > > > C:\Users\val>mysql_config --libs > > > "C:\soft\mariadb/lib/mysqlclient.lib" "wsock32.lib" "advapi32.lib" > > > "user32.lib"
> > > > First one is OK, it is file specified with full path without any > > leading hyphen. gcc and gnu linker can handle it. > > > > But I doubt that other 3 files can be located properly with gcc or > > gnu > > linker, as it can search for libraries only with -l param (in this > > case without "lib" prefix and ".lib" or ".a" suffix).
> > Found > G:\soft\mingw64\x86_64-w64-mingw32\lib\libwsock32.a > G:\soft\mingw64\x86_64-w64-mingw32\lib\libadvapi32.a > G:\soft\mingw64\x86_64-w64-mingw32\lib\libuser32.a > >
> > Which compiler and linker are you using for compiling DBD::mysql?
> > x86_64-4.9.0-release-win32-seh-rt_v3-rev2.7z
So you are using gcc from 64bit mingw. In this case make sure that your libmysqlclient is also 64bit! Show quoted text
> > Looks like my patch really fix problem with determinating if output > > from mysql_config --libs is library (either specified by -l syntax or > > by full path) or ordinary flag. Now there are problems with undefined > > references to internal windows symbols which are probably in those > > not > > found libraries...
>
> > If you want to compile DBD::mysql I would suggest you to manually > > play > > with "perl Makefile.PL --libs=...". And specify all needed libs > > (ideally with full path). Maybe you need to link against some other > > windows libraries... But I do not know, I do not use windows system.
> > What's the syntax for few args for --libs? > --libs="c:/full/path/lib1" --libs="c:/another/lib2" > or > --libs="c:/full/path/lib1 c:/another/lib2" ? > > is there a way to define few paths to lib dirs and provide to --libs > only filenames (without common path)?
IIRC syntax is space separated arguments passed to gcc when linking. When specifying more libs do not forget to properly quote (and espace) params which is needed on windows. If you have a library with full path G:\soft\mingw64\x86_64-w64-mingw32\lib\libwsock32.a then you can tell gcc to use it as: -LG:\soft\mingw64\x86_64-w64-mingw32\lib -lwsock32 or G:\soft\mingw64\x86_64-w64-mingw32\lib\libwsock32.a (maybe backslash needs to be escaped... \ will probably be \\, but I'm not sure) libsomething.a is specified by -lsomething If you have more libraries in some path, then you just need to specify -Lpath only once. try: --libs="\"C:\\soft\\mariadb/lib/mysqlclient.lib\" -L\"G:\\soft\\mingw64\\x86_64-w64-mingw32\\lib\" "-lwsock32" "-ladvapi32" "-luser32" (and play with escaping with \ and quoting with ") Show quoted text
> I'm just surprised that with same perl, build system it's possible to > compile DBD::mysql against mysql, but not mariadb. And even > mysql_config.pl in mariadb needs small fix to get it working at all > (in sub get_full_path).
If you have exactly same build system, then problem is only in mysql_config application. That one (which comes from either mysql or mariadb) is responsible for telling DBD::mysql where to find libmysqlclient and which flags needs to be passed to compiler and linker. Maybe you should report this problem to mariadb if with mysql you do not have any problem.
MIME-Version: 1.0
In-Reply-To: <rt-4.0.18-19379-1479680009-1134.100898-0-0 [...] rt.cpan.org>
X-Mailer: MIME-tools 5.504 (Entity 5.504)
Content-Disposition: inline
X-RT-Interface: Web
References: <CAAVX1acROVsaBHs-wd467SMPQEpBmZd_cfVPLH3FWF3PbYyJzQ [...] mail.gmail.com> <rt-4.0.18-20779-1479673384-628.100898-0-0 [...] rt.cpan.org> <rt-4.0.18-24761-1479674763-760.100898-0-0 [...] rt.cpan.org> <rt-4.0.18-19379-1479679139-459.100898-0-0 [...] rt.cpan.org> <rt-4.0.18-19379-1479680009-1134.100898-0-0 [...] rt.cpan.org>
Content-Type: text/plain; charset="utf-8"
Message-ID: <rt-4.0.18-5654-1484748967-436.100898-0-0 [...] rt.cpan.org>
Content-Transfer-Encoding: binary
X-RT-Original-Encoding: utf-8
X-RT-Encrypt: 0
X-RT-Sign: 0
Content-Length: 3652
Download (untitled) / with headers
text/plain 3.5k
On Sun Nov 20 17:13:29 2016, PALI wrote: Show quoted text
> On Ned Nov 20 16:58:59 2016, VAL wrote:
> > On Sun Nov 20 15:46:03 2016, PALI wrote:
> > > On Ned Nov 20 15:23:04 2016, VAL wrote:
> > > > I was blaming Makefile.PL too. > > > > > > > > C:\Users\val>mysql_config --libs > > > > "C:\soft\mariadb/lib/mysqlclient.lib" "wsock32.lib" > > > > "advapi32.lib" > > > > "user32.lib"
> > > > > > First one is OK, it is file specified with full path without any > > > leading hyphen. gcc and gnu linker can handle it. > > > > > > But I doubt that other 3 files can be located properly with gcc or > > > gnu > > > linker, as it can search for libraries only with -l param (in this > > > case without "lib" prefix and ".lib" or ".a" suffix).
> > > > Found > > G:\soft\mingw64\x86_64-w64-mingw32\lib\libwsock32.a > > G:\soft\mingw64\x86_64-w64-mingw32\lib\libadvapi32.a > > G:\soft\mingw64\x86_64-w64-mingw32\lib\libuser32.a > > > >
> > > Which compiler and linker are you using for compiling DBD::mysql?
> > > > x86_64-4.9.0-release-win32-seh-rt_v3-rev2.7z
> > So you are using gcc from 64bit mingw. In this case make sure that > your libmysqlclient is also 64bit! >
> > > Looks like my patch really fix problem with determinating if output > > > from mysql_config --libs is library (either specified by -l syntax > > > or > > > by full path) or ordinary flag. Now there are problems with > > > undefined > > > references to internal windows symbols which are probably in those > > > not > > > found libraries...
> >
> > > If you want to compile DBD::mysql I would suggest you to manually > > > play > > > with "perl Makefile.PL --libs=...". And specify all needed libs > > > (ideally with full path). Maybe you need to link against some other > > > windows libraries... But I do not know, I do not use windows > > > system.
> > > > What's the syntax for few args for --libs? > > --libs="c:/full/path/lib1" --libs="c:/another/lib2" > > or > > --libs="c:/full/path/lib1 c:/another/lib2" ? > > > > is there a way to define few paths to lib dirs and provide to --libs > > only filenames (without common path)?
> > IIRC syntax is space separated arguments passed to gcc when linking. > When specifying more libs do not forget to properly quote (and espace) > params which is needed on windows. > > If you have a library with full path G:\soft\mingw64\x86_64-w64- > mingw32\lib\libwsock32.a then you can tell gcc to use it as: > > -LG:\soft\mingw64\x86_64-w64-mingw32\lib -lwsock32 > > or > > G:\soft\mingw64\x86_64-w64-mingw32\lib\libwsock32.a > > (maybe backslash needs to be escaped... \ will probably be \\, but I'm > not sure) > > libsomething.a is specified by -lsomething > > If you have more libraries in some path, then you just need to specify > -Lpath only once. > > try: --libs="\"C:\\soft\\mariadb/lib/mysqlclient.lib\" > -L\"G:\\soft\\mingw64\\x86_64-w64-mingw32\\lib\" "-lwsock32" "- > ladvapi32" "-luser32" > > (and play with escaping with \ and quoting with ") >
> > I'm just surprised that with same perl, build system it's possible to > > compile DBD::mysql against mysql, but not mariadb. And even > > mysql_config.pl in mariadb needs small fix to get it working at all > > (in sub get_full_path).
> > If you have exactly same build system, then problem is only in > mysql_config application. That one (which comes from either mysql or > mariadb) is responsible for telling DBD::mysql where to find > libmysqlclient and which flags needs to be passed to compiler and > linker. Maybe you should report this problem to mariadb if with mysql > you do not have any problem.
Hi! Have you resolved this building problem? Or are there any others?
MIME-Version: 1.0
In-Reply-To: <rt-4.0.18-5654-1484748967-436.100898-0-0 [...] rt.cpan.org>
X-Mailer: MIME-tools 5.504 (Entity 5.504)
Content-Disposition: inline
X-RT-Interface: Web
References: <CAAVX1acROVsaBHs-wd467SMPQEpBmZd_cfVPLH3FWF3PbYyJzQ [...] mail.gmail.com> <rt-4.0.18-20779-1479673384-628.100898-0-0 [...] rt.cpan.org> <rt-4.0.18-24761-1479674763-760.100898-0-0 [...] rt.cpan.org> <rt-4.0.18-19379-1479679139-459.100898-0-0 [...] rt.cpan.org> <rt-4.0.18-19379-1479680009-1134.100898-0-0 [...] rt.cpan.org> <rt-4.0.18-5654-1484748967-436.100898-0-0 [...] rt.cpan.org>
Content-Type: text/plain; charset="utf-8"
Message-ID: <rt-4.0.18-16514-1485237394-268.100898-0-0 [...] rt.cpan.org>
Content-Transfer-Encoding: binary
X-RT-Original-Encoding: utf-8
X-RT-Encrypt: 0
X-RT-Sign: 0
Content-Length: 4018
Download (untitled) / with headers
text/plain 3.9k
On Wed Jan 18 09:16:07 2017, PALI wrote: Show quoted text
> On Sun Nov 20 17:13:29 2016, PALI wrote:
> > On Ned Nov 20 16:58:59 2016, VAL wrote:
> > > On Sun Nov 20 15:46:03 2016, PALI wrote:
> > > > On Ned Nov 20 15:23:04 2016, VAL wrote:
> > > > > I was blaming Makefile.PL too. > > > > > > > > > > C:\Users\val>mysql_config --libs > > > > > "C:\soft\mariadb/lib/mysqlclient.lib" "wsock32.lib" > > > > > "advapi32.lib" > > > > > "user32.lib"
> > > > > > > > First one is OK, it is file specified with full path without any > > > > leading hyphen. gcc and gnu linker can handle it. > > > > > > > > But I doubt that other 3 files can be located properly with gcc or > > > > gnu > > > > linker, as it can search for libraries only with -l param (in this > > > > case without "lib" prefix and ".lib" or ".a" suffix).
> > > > > > Found > > > G:\soft\mingw64\x86_64-w64-mingw32\lib\libwsock32.a > > > G:\soft\mingw64\x86_64-w64-mingw32\lib\libadvapi32.a > > > G:\soft\mingw64\x86_64-w64-mingw32\lib\libuser32.a > > > > > >
> > > > Which compiler and linker are you using for compiling DBD::mysql?
> > > > > > x86_64-4.9.0-release-win32-seh-rt_v3-rev2.7z
> > > > So you are using gcc from 64bit mingw. In this case make sure that > > your libmysqlclient is also 64bit! > >
> > > > Looks like my patch really fix problem with determinating if output > > > > from mysql_config --libs is library (either specified by -l syntax > > > > or > > > > by full path) or ordinary flag. Now there are problems with > > > > undefined > > > > references to internal windows symbols which are probably in those > > > > not > > > > found libraries...
> > >
> > > > If you want to compile DBD::mysql I would suggest you to manually > > > > play > > > > with "perl Makefile.PL --libs=...". And specify all needed libs > > > > (ideally with full path). Maybe you need to link against some other > > > > windows libraries... But I do not know, I do not use windows > > > > system.
> > > > > > What's the syntax for few args for --libs? > > > --libs="c:/full/path/lib1" --libs="c:/another/lib2" > > > or > > > --libs="c:/full/path/lib1 c:/another/lib2" ? > > > > > > is there a way to define few paths to lib dirs and provide to --libs > > > only filenames (without common path)?
> > > > IIRC syntax is space separated arguments passed to gcc when linking. > > When specifying more libs do not forget to properly quote (and espace) > > params which is needed on windows. > > > > If you have a library with full path G:\soft\mingw64\x86_64-w64- > > mingw32\lib\libwsock32.a then you can tell gcc to use it as: > > > > -LG:\soft\mingw64\x86_64-w64-mingw32\lib -lwsock32 > > > > or > > > > G:\soft\mingw64\x86_64-w64-mingw32\lib\libwsock32.a > > > > (maybe backslash needs to be escaped... \ will probably be \\, but I'm > > not sure) > > > > libsomething.a is specified by -lsomething > > > > If you have more libraries in some path, then you just need to specify > > -Lpath only once. > > > > try: --libs="\"C:\\soft\\mariadb/lib/mysqlclient.lib\" > > -L\"G:\\soft\\mingw64\\x86_64-w64-mingw32\\lib\" "-lwsock32" "- > > ladvapi32" "-luser32" > > > > (and play with escaping with \ and quoting with ") > >
> > > I'm just surprised that with same perl, build system it's possible to > > > compile DBD::mysql against mysql, but not mariadb. And even > > > mysql_config.pl in mariadb needs small fix to get it working at all > > > (in sub get_full_path).
> > > > If you have exactly same build system, then problem is only in > > mysql_config application. That one (which comes from either mysql or > > mariadb) is responsible for telling DBD::mysql where to find > > libmysqlclient and which flags needs to be passed to compiler and > > linker. Maybe you should report this problem to mariadb if with mysql > > you do not have any problem.
> > Hi! Have you resolved this building problem? > > Or are there any others?
No, I have not. :-( I'd appreciate if Strawberry perl folks could share their way of getting this module working with MariaDB.
MIME-Version: 1.0
In-Reply-To: <rt-4.0.18-16514-1485237394-268.100898-0-0 [...] rt.cpan.org>
X-Mailer: MIME-tools 5.504 (Entity 5.504)
Content-Disposition: inline
X-RT-Interface: Web
References: <CAAVX1acROVsaBHs-wd467SMPQEpBmZd_cfVPLH3FWF3PbYyJzQ [...] mail.gmail.com> <rt-4.0.18-20779-1479673384-628.100898-0-0 [...] rt.cpan.org> <rt-4.0.18-24761-1479674763-760.100898-0-0 [...] rt.cpan.org> <rt-4.0.18-19379-1479679139-459.100898-0-0 [...] rt.cpan.org> <rt-4.0.18-19379-1479680009-1134.100898-0-0 [...] rt.cpan.org> <rt-4.0.18-5654-1484748967-436.100898-0-0 [...] rt.cpan.org> <rt-4.0.18-16514-1485237394-268.100898-0-0 [...] rt.cpan.org>
Content-Type: text/plain; charset="utf-8"
Message-ID: <rt-4.0.18-17595-1485440772-952.100898-0-0 [...] rt.cpan.org>
Content-Transfer-Encoding: binary
X-RT-Original-Encoding: utf-8
X-RT-Encrypt: 0
X-RT-Sign: 0
Content-Length: 5346
Download (untitled) / with headers
text/plain 5.2k
On Tue Jan 24 00:56:34 2017, VAL wrote: Show quoted text
> On Wed Jan 18 09:16:07 2017, PALI wrote:
> > On Sun Nov 20 17:13:29 2016, PALI wrote:
> > > On Ned Nov 20 16:58:59 2016, VAL wrote:
> > > > On Sun Nov 20 15:46:03 2016, PALI wrote:
> > > > > On Ned Nov 20 15:23:04 2016, VAL wrote:
> > > > > > I was blaming Makefile.PL too. > > > > > > > > > > > > C:\Users\val>mysql_config --libs > > > > > > "C:\soft\mariadb/lib/mysqlclient.lib" "wsock32.lib" > > > > > > "advapi32.lib" > > > > > > "user32.lib"
> > > > > > > > > > First one is OK, it is file specified with full path without > > > > > any > > > > > leading hyphen. gcc and gnu linker can handle it. > > > > > > > > > > But I doubt that other 3 files can be located properly with gcc > > > > > or > > > > > gnu > > > > > linker, as it can search for libraries only with -l param (in > > > > > this > > > > > case without "lib" prefix and ".lib" or ".a" suffix).
> > > > > > > > Found > > > > G:\soft\mingw64\x86_64-w64-mingw32\lib\libwsock32.a > > > > G:\soft\mingw64\x86_64-w64-mingw32\lib\libadvapi32.a > > > > G:\soft\mingw64\x86_64-w64-mingw32\lib\libuser32.a > > > > > > > >
> > > > > Which compiler and linker are you using for compiling > > > > > DBD::mysql?
> > > > > > > > x86_64-4.9.0-release-win32-seh-rt_v3-rev2.7z
> > > > > > So you are using gcc from 64bit mingw. In this case make sure that > > > your libmysqlclient is also 64bit! > > >
> > > > > Looks like my patch really fix problem with determinating if > > > > > output > > > > > from mysql_config --libs is library (either specified by -l > > > > > syntax > > > > > or > > > > > by full path) or ordinary flag. Now there are problems with > > > > > undefined > > > > > references to internal windows symbols which are probably in > > > > > those > > > > > not > > > > > found libraries...
> > > >
> > > > > If you want to compile DBD::mysql I would suggest you to > > > > > manually > > > > > play > > > > > with "perl Makefile.PL --libs=...". And specify all needed libs > > > > > (ideally with full path). Maybe you need to link against some > > > > > other > > > > > windows libraries... But I do not know, I do not use windows > > > > > system.
> > > > > > > > What's the syntax for few args for --libs? > > > > --libs="c:/full/path/lib1" --libs="c:/another/lib2" > > > > or > > > > --libs="c:/full/path/lib1 c:/another/lib2" ? > > > > > > > > is there a way to define few paths to lib dirs and provide to > > > > --libs > > > > only filenames (without common path)?
> > > > > > IIRC syntax is space separated arguments passed to gcc when > > > linking. > > > When specifying more libs do not forget to properly quote (and > > > espace) > > > params which is needed on windows. > > > > > > If you have a library with full path G:\soft\mingw64\x86_64-w64- > > > mingw32\lib\libwsock32.a then you can tell gcc to use it as: > > > > > > -LG:\soft\mingw64\x86_64-w64-mingw32\lib -lwsock32 > > > > > > or > > > > > > G:\soft\mingw64\x86_64-w64-mingw32\lib\libwsock32.a > > > > > > (maybe backslash needs to be escaped... \ will probably be \\, but > > > I'm > > > not sure) > > > > > > libsomething.a is specified by -lsomething > > > > > > If you have more libraries in some path, then you just need to > > > specify > > > -Lpath only once. > > > > > > try: --libs="\"C:\\soft\\mariadb/lib/mysqlclient.lib\" > > > -L\"G:\\soft\\mingw64\\x86_64-w64-mingw32\\lib\" "-lwsock32" "- > > > ladvapi32" "-luser32" > > > > > > (and play with escaping with \ and quoting with ") > > >
> > > > I'm just surprised that with same perl, build system it's > > > > possible to > > > > compile DBD::mysql against mysql, but not mariadb. And even > > > > mysql_config.pl in mariadb needs small fix to get it working at > > > > all > > > > (in sub get_full_path).
> > > > > > If you have exactly same build system, then problem is only in > > > mysql_config application. That one (which comes from either mysql > > > or > > > mariadb) is responsible for telling DBD::mysql where to find > > > libmysqlclient and which flags needs to be passed to compiler and > > > linker. Maybe you should report this problem to mariadb if with > > > mysql > > > you do not have any problem.
> > > > Hi! Have you resolved this building problem? > > > > Or are there any others?
> > No, I have not. :-( I'd appreciate if Strawberry perl folks could > share their way of getting this module working with MariaDB.
Currently MariaDB 10.2.2 and newer have bug in mysql_config which cause that DBD::mysql cannot be compiled with those MariaDB versions. Michiel already reported this bug in MariaDB bug tracker: https://jira.mariadb.org/browse/MDEV-11872 But MariaDB 10.2.1 and older seems to work fine with DBD::mysql from git on Linux. This pull request https://github.com/perl5-dbi/DBD-mysql/pull/85 adds support for automatically check if DBD::mysql unit tests pass on different MySQL & MariaDB versions on Linux You can see result (everything pass) and tested versions: https://travis-ci.org/perl5-dbi/DBD-mysql/builds/194603464 Those tests are running on Travis and therefore only Linux versions are tested. I would suggest you to report this bug either directly Strawberry perl bug tracker or to MariaDB bug tracker. As Linux versions are working fine, problem is somewhere in Windows code (perl/mariadb/scripts/setup) and therefore cannot help you more.
X-RT-Interface: REST
MIME-Version: 1.0
X-Mailer: MIME-tools 5.504 (Entity 5.504)
RT-Message-ID: <rt-4.0.18-21852-1510732387-1531.100898-0-0 [...] rt.cpan.org>
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: binary
Content-Length: 78


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.