bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: REGRESSION: cross compile 4.3 fail on mingw-w64 7.0/GCC 9.2


From: Paul Smith
Subject: Re: REGRESSION: cross compile 4.3 fail on mingw-w64 7.0/GCC 9.2
Date: Mon, 20 Jan 2020 13:41:48 -0500
User-agent: Evolution 3.34.1-2

On Mon, 2020-01-20 at 18:03 +0000, Nan . wrote:
> I built latest GNU Make 4.3 and it failed. I use same way/compiler to
> build 4.2.1, it works. I think this might be regression issue.
> 
> my configure is 
> /home/build/src/make-4.3/configure --prefix=/home/build/native --with-
> sysroot=/home/build/native --build=x86_64-pc-linux-gnu --host=x86_64-w64-
> mingw32 --target=x86_64-w64-mingw32 --disable-nls

The build works properly on native Windows with MSVC and mingw so it must
be a problem specific to this cross-compilation environment.

> the error output is 
> 
> /home/build/src/make-4.3/src/w32/compat/dirent.c: In function 'opendir':
> /home/build/src/make-4.3/src/w32/compat/dirent.c:59:20: error: 'DIR' {aka
> 'struct <anonymous>'} has no member named 'dir_pDirectoryName'
>    59 |         strcpy(pDir->dir_pDirectoryName, pDirName);
>       |                    ^~

Please always show the actual compile line that make invoked when reporting
compilation errors.

It looks like the wrong version of dirent.h is being included.  Make comes
with its own implementation that is used on Windows, since Windows doesn't
include one, and that includes both w32/compat/dirent.c AND
w32/include/dirent.h.

It looks like this compilation is using the compat dirent.c but compiling
it against some other dirent.h (maybe one that comes with mingw).




reply via email to

[Prev in Thread] Current Thread [Next in Thread]