From: Eli Zaretskii <eliz@gnu.org>
To: simon.cook@embecosm.com
Cc: gdb@sourceware.org
Subject: Re: Unable to build GDB on Windows
Date: Mon, 28 Sep 2020 17:43:43 +0300 [thread overview]
Message-ID: <83zh5aklls.fsf@gnu.org> (raw)
In-Reply-To: <833632m10q.fsf@gnu.org> (message from Eli Zaretskii via Gdb on Mon, 28 Sep 2020 17:25:25 +0300)
> Date: Mon, 28 Sep 2020 17:25:25 +0300
> From: Eli Zaretskii via Gdb <gdb@sourceware.org>
> Cc: gdb@sourceware.org
>
> > From: Simon Cook <simon.cook@embecosm.com>
> > Date: Mon, 28 Sep 2020 14:47:25 +0100
> >
> > I've been trying to build top of tree GDB on Windows (natively under
> > the MSYS2 environment), and haven't been able to link successfully due
> > to undefined symbols after linking against gnulib:
> >
> > CXXLD gdb.exe
> > ../gnulib/import/libgnu.a(getrandom.o): In function `getrandom':
> > C:\msys64s\home\simon\work\b\gnulib\import/../../../binutils-gdb/gnulib/import/getrandom.c:129:
> > undefined reference to `BCryptGenRandom'
> > collect2.exe: error: ld returned 1 exit status
> >
> > Reading through the source file and gnulib/import/m4/getrandom.m4, it
> > suggests that in my case if bcrypt can be guaranteed to be present
> > then I should add -lbcrypt to my linker flags to resolve these
> > references, and indeed if I execute the failing gdb link command and
> > add -lbcrypt at the end then my link succeeds.
Btw, looking at Gnulib's getrandom.c, my conclusion is that a GDB
built on Windows 7 and later will be unable to run on older versions
of Windows, because it will have a static dependency on bcrypt.dll and
the BCryptGenRandom function from that DLL. IOW, such a GDB will
refuse to run on older Windows systems.
OTOH, if you build on Windows before 7, the produced binary will be
able to run on newer versions of Windows by dynamically loading
bcrypt.dll (when available) at run time, and using a fallback
otherwise.
Perhaps no one cares about Windows 7 and older anymore, but I just
wanted to say this FTR, in case someone bumps into such a problem.
next prev parent reply other threads:[~2020-09-28 14:43 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-28 13:47 Simon Cook
2020-09-28 14:25 ` Eli Zaretskii
2020-09-28 14:43 ` Eli Zaretskii [this message]
2020-09-28 15:15 ` Joel Brobecker
2020-09-28 15:21 ` Eli Zaretskii
2020-09-28 15:17 ` Christian Biesinger
2020-09-28 15:23 ` Eli Zaretskii
2020-09-28 15:29 ` Eli Zaretskii
2020-09-28 15:02 ` Simon Cook
2020-09-28 15:14 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=83zh5aklls.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=gdb@sourceware.org \
--cc=simon.cook@embecosm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).