GDC MINGW BUILD: version (Windows) NOT DEFINED

2018-12-22 Thread MINGW-USER via D.gnu
It seems version (Windows) is not defined into the compiler 
gdc.exe

gdc (GCC) 9.0.0 20181221 (experimental)
built with msys2/mingw-w64 on Windows 10.

The trouble appears while building libdruntime

EXAMPLE: libphobos\libdruntime\core\stdc\time.d
error: undefined identifier 'time_t'
error: undefined identifier 'tm'

Manually add

version (GNU) {
alias c_long time_t;
alias c_long clock_t;
}

into time.d then it compiles but it seems weird.

The trouble is that there are many other similar errors
with core\stdc\stddef.d, stdlib.d, stdint.d, etc ...

Help needed.






Re: GDC MINGW BUILD: version (Windows) NOT DEFINED

2018-12-23 Thread MINGW-USER via D.gnu

On Sunday, 23 December 2018 at 15:15:37 UTC, Johannes Pfau wrote:

Am Sun, 23 Dec 2018 01:21:22 + schrieb MINGW-USER:

It seems version (Windows) is not defined into the compiler 
gdc.exe gdc

(GCC) 9.0.0 20181221 (experimental)
built with msys2/mingw-w64 on Windows 10.

The trouble appears while building libdruntime

EXAMPLE: libphobos\libdruntime\core\stdc\time.d error: 
undefined

identifier 'time_t'
error: undefined identifier 'tm'

Manually add

version (GNU) {
 alias c_long time_t; alias c_long clock_t;
}

into time.d then it compiles but it seems weird.

The trouble is that there are many other similar errors with 
core\stdc\stddef.d, stdlib.d, stdint.d, etc ...


Help needed.


That's an interesting coincidence, I just set up a Windows 10 
VM + MSYS2 for MinGW development a day ago.


How exactly did you build GCC? I tried to build in the mingw64 
environment using the same configure flags as in the 
mingw-w64-gcc package [1] and without any GCC patches. I had to 
fix some build errors in filename.c, did you get these as well? 
Additionally the built toolchain is not properly relocatable: 
Installing into / works, but if I use DESTDIR=/somewhere/else 
to install, the new gcc doesn't find the headers in 
/mingw64/x86_64... anymore. So if you know any better way to 
build GCC in the MSYS2 environment, please let me know :-)


And regarding the specific problem you mentioned: As gdc is 
untested on the mingw backend, the patches for mingw which set 
version(Windows) have not been applied to the GCC sources. You 
have to apply this patch manually: 
https://github.com/D-Programming-GDC/GDC/blob/ 
958363de2ba09656de340d13ca56f80f8ba10805/patches/targetdm-untested.patch


However, phobos probably won't build right now either way.


[1]
../gcc-9-20181216/configure --enable-languages=lto,d,c++ 
--prefix=/mingw64

--with-local-prefix=/mingw64/local --build=x86_64-w64-mingw32 --
host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 
--with-native-system-
header-dir=/mingw64/x86_64-w64-mingw32/include 
--libexecdir=/mingw64/lib
--with-arch=x86-64 --with-tune=generic --enable-shared 
--enable-static --
enable-libatomic --enable-threads=posix --enable-graphite 
--disable-
libstdcxx-pch --disable-libstdcxx-debug 
--disable-isl-version-check --
enable-lto --enable-libgomp --disable-multilib --disable-rpath 
--disable-
win32-registry --disable-nls --disable-werror --disable-symvers 
--with-
libiconv --with-system-zlib --with-gmp=/mingw64 
--with-mpfr=/mingw64 --
with-mpc=/mingw64 --with-isl=/mingw64 --with-gnu-as 
--with-gnu-ld --

disable-bootstrap --enable-libphobos



Yeah I had to fix some build errors in filename.c (attempt to use 
poisoned "malloc"; invalid const_cast from type 'const char*' to 
type 'void*'; and '_mkdir' was not declared in this scope)


The following script is based on the instructions I found at 
https://github.com/StephanTLavavej/mingw-distro


The end result will be stored at C:\build\dest
I can move/rename 'dest' to somewhere else and it works
(no relocatable problem, I guess)

I tried to reproduce every step I took. It's something like this 
...


- build mingw c, c++, d --

Map C:\build to /build in msys2
(/etc/fstab.d)

export 
PATH="/c/Dev/mingw64/bin:/c/Dev/msys64/usr/bin:/c/Windows/System32:/c/Windows"
where /c/Dev/mingw64 is from 
https://sourceforge.net/projects/mingw-w64/files/Multilib%20Toolchains%28Targetting%20Win32%20and%20Win64%29/ray_linn/gcc-6.X-with-ada/gcc-6.1.0-multilib-mingw-4.0.6-with-ada-201605226.7z


Download binutils-2.31.1.tar.xz from the GNU FTP
and extract into /build

cd /build
mkdir build-binutils
cd build-binutils
../binutils-2.31.1/configure \
--build=x86_64-w64-mingw32 \
--host=x86_64-w64-mingw32 \
--target=x86_64-w64-mingw32 \
--prefix=/build/dest
make
make install


Download and extract mingw-w64-v5.0.4.zip from
https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/
(version 6.0.0 does not work)

cd /build
mkdir build-mingw-w64
cd build-mingw-w64
../mingw-w64-v5.0.4/configure \
--build=x86_64-w64-mingw32 \
--host=x86_64-w64-mingw32 \
--prefix=/build/dest/x86_64-w64-mingw32 \
--disable-lib32 \
--with-libraries=winpthreads \
--with-tools=all
make
make install


Download and extract
- gmp-6.1.2.tar.gz
- mpfr-3.1.6.tar.gz
- mpc-1.1.0.tar.gz
- isl-0.18.tar.gz
into directory /build/gcc-all

Download 
https://github.com/StephanTLavavej/mingw-distro/blob/v15.4/mpfr.patch

patch -Z -d /build/gcc-all/mpfr-3.1.6 -p1 < mpfr.patch

cd /build/gcc-all
mv /path/to/gcc-trunk src
(where /path/to/gcc-trunk is the root directory of gcc svn)
mv gmp-6.1.2 src/gmp
mv mpfr-3.1.6 src/mpfr
mv mpc-1.1.0 src/mpc
mv isl-0.18 src/isl

Create junction point
cmd /C "mklink /J C:\build\dest\mingw 
C:\build\dest\x86_64-w64-mingw32"


cd /build
mkdir build-gcc
cd build-gcc
../gcc-all/src/configure \
--enable-languages=c,c++,d \
--build=x86_64-w64-mingw32 \
--host=x86_64-w64-mingw32 \
--target=x86_64-w64-mingw32 \
--disable-shared

Re: Using gdc on Windows

2020-05-26 Thread MINGW-USER via D.gnu

On Monday, 25 May 2020 at 10:23:50 UTC, Iain Buclaw wrote:

On 21/05/2020 01:18, NonNull via D.gnu wrote:

Hello,

I'd like to run gdc natively on Windows in a mingw compatible 
way. How can I proceed?




We need some testers to verify this patch.

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91595


libdruntime build fails with error: undefined identifier 
'__gdc_personality_imp'.

Need Help.

libtool: compile:  gdc -DDLL_EXPORT -Wall -frelease -g -O2 
-nostdinc -I ../../gcc-10.1.0/libphobos/libdruntime -I . -c 
../../gcc-10.1.0/libphobos/libdruntime/gcc/deh.d -fversion=Shared 
-o gcc/.libs/deh.o
../../gcc-10.1.0/libphobos/libdruntime/gcc/deh.d:808:48: error: 
undefined identifier '__gdc_personality_imp'
  808 |  ms_disp, 
&__gdc_personality_imp);

  |^