-
Notifications
You must be signed in to change notification settings - Fork 88
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Odd compile error with RES_STARTEND and regex.h version on MSVC build #275
Comments
This the |
Where does that |
Either of these lines, I think. Here's what I get when I look at curl-config:
So we get that stuck into |
So the resulting command line looks like this. I suggest that the
|
Ah, it's most likely caused by https://github.com/git-for-windows/git/blob/v2.27.0.windows.1/Makefile#L1374. As this was kind of intentional, maybe our best bet is to add an |
In 897d68e (Makefile: use curl-config --cflags, 2020-03-26), we taught the build process to use `curl-config --cflags` to make sure that it can find cURL's headers. In the MSVC build, this is completely bogus because we're running in a Git for Windows SDK whose `curl-config` supports the _GCC_ build. Let's just ignore each and every `-I<path>` option where `<path>` points to GCC/Clang specific headers. Reported by Jeff Hostetler in microsoft#275. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
In 897d68e (Makefile: use curl-config --cflags, 2020-03-26), we taught the build process to use `curl-config --cflags` to make sure that it can find cURL's headers. In the MSVC build, this is completely bogus because we're running in a Git for Windows SDK whose `curl-config` supports the _GCC_ build. Let's just ignore each and every `-I<path>` option where `<path>` points to GCC/Clang specific headers. Reported by Jeff Hostetler in microsoft#275. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
In 897d68e (Makefile: use curl-config --cflags, 2020-03-26), we taught the build process to use `curl-config --cflags` to make sure that it can find cURL's headers. In the MSVC build, this is completely bogus because we're running in a Git for Windows SDK whose `curl-config` supports the _GCC_ build. Let's just ignore each and every `-I<path>` option where `<path>` points to GCC/Clang specific headers. Reported by Jeff Hostetler in microsoft#275. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
In 897d68e (Makefile: use curl-config --cflags, 2020-03-26), we taught the build process to use `curl-config --cflags` to make sure that it can find cURL's headers. In the MSVC build, this is completely bogus because we're running in a Git for Windows SDK whose `curl-config` supports the _GCC_ build. Let's just ignore each and every `-I<path>` option where `<path>` points to GCC/Clang specific headers. Reported by Jeff Hostetler in microsoft#275. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
In 897d68e (Makefile: use curl-config --cflags, 2020-03-26), we taught the build process to use `curl-config --cflags` to make sure that it can find cURL's headers. In the MSVC build, this is completely bogus because we're running in a Git for Windows SDK whose `curl-config` supports the _GCC_ build. Let's just ignore each and every `-I<path>` option where `<path>` points to GCC/Clang specific headers. Reported by Jeff Hostetler in microsoft#275. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
In 897d68e (Makefile: use curl-config --cflags, 2020-03-26), we taught the build process to use `curl-config --cflags` to make sure that it can find cURL's headers. In the MSVC build, this is completely bogus because we're running in a Git for Windows SDK whose `curl-config` supports the _GCC_ build. Let's just ignore each and every `-I<path>` option where `<path>` points to GCC/Clang specific headers. Reported by Jeff Hostetler in microsoft#275. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
In 897d68e (Makefile: use curl-config --cflags, 2020-03-26), we taught the build process to use `curl-config --cflags` to make sure that it can find cURL's headers. In the MSVC build, this is completely bogus because we're running in a Git for Windows SDK whose `curl-config` supports the _GCC_ build. Let's just ignore each and every `-I<path>` option where `<path>` points to GCC/Clang specific headers. Reported by Jeff Hostetler in microsoft#275. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
In 897d68e (Makefile: use curl-config --cflags, 2020-03-26), we taught the build process to use `curl-config --cflags` to make sure that it can find cURL's headers. In the MSVC build, this is completely bogus because we're running in a Git for Windows SDK whose `curl-config` supports the _GCC_ build. Let's just ignore each and every `-I<path>` option where `<path>` points to GCC/Clang specific headers. Reported by Jeff Hostetler in microsoft#275. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
In 897d68e (Makefile: use curl-config --cflags, 2020-03-26), we taught the build process to use `curl-config --cflags` to make sure that it can find cURL's headers. In the MSVC build, this is completely bogus because we're running in a Git for Windows SDK whose `curl-config` supports the _GCC_ build. Let's just ignore each and every `-I<path>` option where `<path>` points to GCC/Clang specific headers. Reported by Jeff Hostetler in microsoft#275. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
In 897d68e (Makefile: use curl-config --cflags, 2020-03-26), we taught the build process to use `curl-config --cflags` to make sure that it can find cURL's headers. In the MSVC build, this is completely bogus because we're running in a Git for Windows SDK whose `curl-config` supports the _GCC_ build. Let's just ignore each and every `-I<path>` option where `<path>` points to GCC/Clang specific headers. Reported by Jeff Hostetler in microsoft#275. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
In 897d68e (Makefile: use curl-config --cflags, 2020-03-26), we taught the build process to use `curl-config --cflags` to make sure that it can find cURL's headers. In the MSVC build, this is completely bogus because we're running in a Git for Windows SDK whose `curl-config` supports the _GCC_ build. Let's just ignore each and every `-I<path>` option where `<path>` points to GCC/Clang specific headers. Reported by Jeff Hostetler in microsoft#275. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
In 897d68e (Makefile: use curl-config --cflags, 2020-03-26), we taught the build process to use `curl-config --cflags` to make sure that it can find cURL's headers. In the MSVC build, this is completely bogus because we're running in a Git for Windows SDK whose `curl-config` supports the _GCC_ build. Let's just ignore each and every `-I<path>` option where `<path>` points to GCC/Clang specific headers. Reported by Jeff Hostetler in microsoft#275. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
In 897d68e (Makefile: use curl-config --cflags, 2020-03-26), we taught the build process to use `curl-config --cflags` to make sure that it can find cURL's headers. In the MSVC build, this is completely bogus because we're running in a Git for Windows SDK whose `curl-config` supports the _GCC_ build. Let's just ignore each and every `-I<path>` option where `<path>` points to GCC/Clang specific headers. Reported by Jeff Hostetler in microsoft#275. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
In 897d68e (Makefile: use curl-config --cflags, 2020-03-26), we taught the build process to use `curl-config --cflags` to make sure that it can find cURL's headers. In the MSVC build, this is completely bogus because we're running in a Git for Windows SDK whose `curl-config` supports the _GCC_ build. Let's just ignore each and every `-I<path>` option where `<path>` points to GCC/Clang specific headers. Reported by Jeff Hostetler in microsoft#275. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
In 897d68e (Makefile: use curl-config --cflags, 2020-03-26), we taught the build process to use `curl-config --cflags` to make sure that it can find cURL's headers. In the MSVC build, this is completely bogus because we're running in a Git for Windows SDK whose `curl-config` supports the _GCC_ build. Let's just ignore each and every `-I<path>` option where `<path>` points to GCC/Clang specific headers. Reported by Jeff Hostetler in microsoft#275. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
In 897d68e (Makefile: use curl-config --cflags, 2020-03-26), we taught the build process to use `curl-config --cflags` to make sure that it can find cURL's headers. In the MSVC build, this is completely bogus because we're running in a Git for Windows SDK whose `curl-config` supports the _GCC_ build. Let's just ignore each and every `-I<path>` option where `<path>` points to GCC/Clang specific headers. Reported by Jeff Hostetler in microsoft#275. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
In 897d68e (Makefile: use curl-config --cflags, 2020-03-26), we taught the build process to use `curl-config --cflags` to make sure that it can find cURL's headers. In the MSVC build, this is completely bogus because we're running in a Git for Windows SDK whose `curl-config` supports the _GCC_ build. Let's just ignore each and every `-I<path>` option where `<path>` points to GCC/Clang specific headers. Reported by Jeff Hostetler in microsoft#275. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
In 897d68e (Makefile: use curl-config --cflags, 2020-03-26), we taught the build process to use `curl-config --cflags` to make sure that it can find cURL's headers. In the MSVC build, this is completely bogus because we're running in a Git for Windows SDK whose `curl-config` supports the _GCC_ build. Let's just ignore each and every `-I<path>` option where `<path>` points to GCC/Clang specific headers. Reported by Jeff Hostetler in microsoft#275. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
In 897d68e (Makefile: use curl-config --cflags, 2020-03-26), we taught the build process to use `curl-config --cflags` to make sure that it can find cURL's headers. In the MSVC build, this is completely bogus because we're running in a Git for Windows SDK whose `curl-config` supports the _GCC_ build. Let's just ignore each and every `-I<path>` option where `<path>` points to GCC/Clang specific headers. Reported by Jeff Hostetler in microsoft#275. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
In 897d68e (Makefile: use curl-config --cflags, 2020-03-26), we taught the build process to use `curl-config --cflags` to make sure that it can find cURL's headers. In the MSVC build, this is completely bogus because we're running in a Git for Windows SDK whose `curl-config` supports the _GCC_ build. Let's just ignore each and every `-I<path>` option where `<path>` points to GCC/Clang specific headers. Reported by Jeff Hostetler in microsoft#275. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
In 897d68e (Makefile: use curl-config --cflags, 2020-03-26), we taught the build process to use `curl-config --cflags` to make sure that it can find cURL's headers. In the MSVC build, this is completely bogus because we're running in a Git for Windows SDK whose `curl-config` supports the _GCC_ build. Let's just ignore each and every `-I<path>` option where `<path>` points to GCC/Clang specific headers. Reported by Jeff Hostetler in microsoft#275. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
In 897d68e (Makefile: use curl-config --cflags, 2020-03-26), we taught the build process to use `curl-config --cflags` to make sure that it can find cURL's headers. In the MSVC build, this is completely bogus because we're running in a Git for Windows SDK whose `curl-config` supports the _GCC_ build. Let's just ignore each and every `-I<path>` option where `<path>` points to GCC/Clang specific headers. Reported by Jeff Hostetler in microsoft#275. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
In 897d68e (Makefile: use curl-config --cflags, 2020-03-26), we taught the build process to use `curl-config --cflags` to make sure that it can find cURL's headers. In the MSVC build, this is completely bogus because we're running in a Git for Windows SDK whose `curl-config` supports the _GCC_ build. Let's just ignore each and every `-I<path>` option where `<path>` points to GCC/Clang specific headers. Reported by Jeff Hostetler in microsoft#275. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
In 897d68e (Makefile: use curl-config --cflags, 2020-03-26), we taught the build process to use `curl-config --cflags` to make sure that it can find cURL's headers. In the MSVC build, this is completely bogus because we're running in a Git for Windows SDK whose `curl-config` supports the _GCC_ build. Let's just ignore each and every `-I<path>` option where `<path>` points to GCC/Clang specific headers. Reported by Jeff Hostetler in microsoft#275. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
I think I've found a problem in the Makefile for v2.27.0. (I haven't tracked it back to when it first appeared yet.)
Basically, when building the MSVC version (using
make MSVC=1 DEBUG=1
) I'm seeing an errorHowever, we're already defining that symbol in
config.mak.uname
in the MSVC section.Hacking the Makefile to include
-E
and looking at the CPP output shows that the compiler isfinding the wrong version of
regex.h
. It is finding:and NOT the one in
./compat/regex/regex.h
Note that the MSVC section in
config.mak.uname
is adding-Icompat -Icompat/regex
toCOMPAT_FLAGS
at https://github.com/microsoft/git/blob/vfs-2.27.0/config.mak.uname#L451 (and later again at https://github.com/microsoft/git/blob/vfs-2.27.0/Makefile#L1793 )Later,
COMPAT_CFLAGS
gets appended toBASIC_CFLAGS
at https://github.com/microsoft/git/blob/vfs-2.27.0/Makefile#L2004BUT At https://github.com/microsoft/git/blob/vfs-2.27.0/Makefile#L1357-L1381
(and when
CURLDIR
ismingw64
) we append-I/mingw64/include
toBASIC_CFLAGS
,but this happens before
COMPAT_CFLAGS
is appended.Therefore, the compiler sees
... -I/mingw64/include -Icompat -Icompat/regex ...
and tries to use the wrong version of
regex.h
which leads to the compiler error.I'm not sure if this problem is unique to a conflict with CURL. It looks like it Expat, ZLib,
IConv, and a few others could similarly update
BASIC_CFLAGS
before the values fromCOMPAT_CFLAGS
are brought in.Thoughts??
The text was updated successfully, but these errors were encountered: