www.digitalmars.com         C & C++   DMDScript  

D.gnu - Trying to generate gdc for mingw-w64(x86 and x64) using msys2

reply Vincent R <lol dlang.org> writes:
Hi,

I would like to generate a d compiler targeting mingw-w64 using 
the msys2 build system.
So I have installed msys2 (posix emulation like cygwin) as shown 
here: http://msys2.github.io/ and I have installed necessary 
packages:

$ pacman -S base-devel
$ pacman -S mingw-w64-x86_64-toolchain

optionally you can also installed  mingw-w64-i686-toolchain if 
you want to build mingw32 packages but for now I am only 
interested in mingw64 (64 bits).

Then I have forked MINGW-packages repository 
(https://github.com/vrichomme/MINGW-packages) to make my 
experiments.

$ git clone https://github.com/vrichomme/MINGW-packages.git
$ cd MINGW-packages/mingw-w64-gcc

Inside mingw-w64-gcc I have used the 4 patches and renamed them 
to be more compliant with msys2 build system:

gdc-patch-gcc-5.patch
gdc-patch-toplev-5.patch
gdc-patch-versym-cpu-5.patch
gdc-patch-versym-os-5.patch

Then we are ready to start compilation:

$ MINGW_INSTALLS=mingw64 makepkg-mingw -sLf
...
/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w
4-mingw32/./gcc/gdc -B/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_6
-w64-mingw32/./gcc/ -L/mingw64/x86_64-w64-mingw32/lib -L/mingw64/lib -isystem
/mingw64/x86_64-w64-mingw32/include -isystem /mingw64/include
-B/mingw64/x86_64-w64-mingw32/bin/ -B/mingw64/x86_64-w64-mingw32/lib/ -isystem
/mingw64/x86_64-w64-mingw32/include -isystem
/mingw64/x86_64-w64-mingw32/sys-include    -o gcc/gthreads/posix.o -Wall  -g
-frelease -O2 -nostdinc -pipe -Wno-deprecated -I
../../../../gcc-5.2.0/libphobos/libdruntime -I ./x86_64-w64-mingw32 -I .  -c
../../../../gcc-5.2.0/libphobos/libdruntime/gcc/gthreads/posix.d
../../../../gcc-5.2.0/libphobos/libdruntime/gcc/gthreads/posix.d:29:1: error:
undefined identifier pthread_key_t, did you mean alias gthread_key_t?
  alias gthread_key_t   = pthread_key_t;
  ^
...

I am quite new to D language but I can see that posix.d imports 
core.sys.posix.pthread and I thought that on Windows 
Version(Posix) is not defined so how can it compile ?
Do I need to add a -DPosix or something like that ?
Do I need to add a Version(Mingw64) inside core.sys.posix.pthread 
?

Thanks
Nov 05 2015
parent reply Johannes Pfau <nospam example.com> writes:
Am Thu, 05 Nov 2015 12:42:08 +0000
schrieb Vincent R <lol dlang.org>:

 Hi,
 
 I would like to generate a d compiler targeting mingw-w64 using 
 the msys2 build system.
 So I have installed msys2 (posix emulation like cygwin) as shown 
 here: http://msys2.github.io/ and I have installed necessary 
 packages:
 
 $ pacman -S base-devel
 $ pacman -S mingw-w64-x86_64-toolchain
 
 optionally you can also installed  mingw-w64-i686-toolchain if 
 you want to build mingw32 packages but for now I am only 
 interested in mingw64 (64 bits).
 
 Then I have forked MINGW-packages repository 
 (https://github.com/vrichomme/MINGW-packages) to make my 
 experiments.
 
 $ git clone https://github.com/vrichomme/MINGW-packages.git
 $ cd MINGW-packages/mingw-w64-gcc
 
 Inside mingw-w64-gcc I have used the 4 patches and renamed them 
 to be more compliant with msys2 build system:
 
 gdc-patch-gcc-5.patch
 gdc-patch-toplev-5.patch
 gdc-patch-versym-cpu-5.patch
 gdc-patch-versym-os-5.patch
 
 Then we are ready to start compilation:
 
 $ MINGW_INSTALLS=mingw64 makepkg-mingw -sLf
 ...
 /home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w64-mingw32/./gcc/gdc
 -B/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w64-mingw32/./gcc/
 -L/mingw64/x86_64-w64-mingw32/lib -L/mingw64/lib
 -isystem /mingw64/x86_64-w64-mingw32/include
 -isystem /mingw64/include -B/mingw64/x86_64-w64-mingw32/bin/
 -B/mingw64/x86_64-w64-mingw32/lib/
 -isystem /mingw64/x86_64-w64-mingw32/include
 -isystem /mingw64/x86_64-w64-mingw32/sys-include    -o
 gcc/gthreads/posix.o -Wall  -g -frelease -O2 -nostdinc -pipe
 -Wno-deprecated -I ../../../../gcc-5.2.0/libphobos/libdruntime
 -I ./x86_64-w64-mingw32 -I .
 -c ../../../../gcc-5.2.0/libphobos/libdruntime/gcc/gthreads/posix.d
../../../../gcc-5.2.0/libphobos/libdruntime/gcc/gthreads/posix.d:29:1:
 error: undefined identifier pthread_key_t, did you mean alias
 gthread_key_t? alias gthread_key_t   = pthread_key_t; ^ ...
 
 I am quite new to D language but I can see that posix.d imports 
 core.sys.posix.pthread and I thought that on Windows 
 Version(Posix) is not defined so how can it compile ?
 Do I need to add a -DPosix or something like that ?
 Do I need to add a Version(Mingw64) inside core.sys.posix.pthread 
 ?
 
 Thanks
 
 
 
 
 
 
 
 
 
 
Do you use winpthreads? It seems the thread model is 'wrong': https://github.com/D-Programming-GDC/GDC/blob/master/libphobos/configure.ac#L299 Please post the output of /home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w64-mingw32/./gcc/gdc -v (I guess threadmodel is posix for winpthreads. But druntime doesn't really understand winpthreads. We'd have to modify core/sys/posix/pthread.d and adjust the version(Posix) block. But it's hard to estimate how many headers we need to change to support this.)
Nov 05 2015
parent reply Vincent R <lol dlang.org> writes:
On Thursday, 5 November 2015 at 13:15:45 UTC, Johannes Pfau wrote:
 Am Thu, 05 Nov 2015 12:42:08 +0000
 schrieb Vincent R <lol dlang.org>:

 Hi,
 
 I would like to generate a d compiler targeting mingw-w64 using
 the msys2 build system.
 So I have installed msys2 (posix emulation like cygwin) as 
 shown
 here: http://msys2.github.io/ and I have installed necessary
 packages:
 
 $ pacman -S base-devel
 $ pacman -S mingw-w64-x86_64-toolchain
 
 optionally you can also installed  mingw-w64-i686-toolchain if 
 you want to build mingw32 packages but for now I am only 
 interested in mingw64 (64 bits).
 
 Then I have forked MINGW-packages repository 
 (https://github.com/vrichomme/MINGW-packages) to make my 
 experiments.
 
 $ git clone https://github.com/vrichomme/MINGW-packages.git $ 
 cd MINGW-packages/mingw-w64-gcc
 
 Inside mingw-w64-gcc I have used the 4 patches and renamed 
 them to be more compliant with msys2 build system:
 
 gdc-patch-gcc-5.patch
 gdc-patch-toplev-5.patch
 gdc-patch-versym-cpu-5.patch
 gdc-patch-versym-os-5.patch
 
 Then we are ready to start compilation:
 
 $ MINGW_INSTALLS=mingw64 makepkg-mingw -sLf
 ...
 /home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w64-mingw32/./gcc/gdc
 -B/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w64-mingw32/./gcc/
 -L/mingw64/x86_64-w64-mingw32/lib -L/mingw64/lib
 -isystem /mingw64/x86_64-w64-mingw32/include
 -isystem /mingw64/include -B/mingw64/x86_64-w64-mingw32/bin/
 -B/mingw64/x86_64-w64-mingw32/lib/
 -isystem /mingw64/x86_64-w64-mingw32/include
 -isystem /mingw64/x86_64-w64-mingw32/sys-include    -o
 gcc/gthreads/posix.o -Wall  -g -frelease -O2 -nostdinc -pipe
 -Wno-deprecated -I ../../../../gcc-5.2.0/libphobos/libdruntime
 -I ./x86_64-w64-mingw32 -I .
 -c 
 ../../../../gcc-5.2.0/libphobos/libdruntime/gcc/gthreads/posix.d
../../../../gcc-5.2.0/libphobos/libdruntime/gcc/gthreads/posix.d:29:1:
 error: undefined identifier pthread_key_t, did you mean alias
 gthread_key_t? alias gthread_key_t   = pthread_key_t; ^ ...
 
 I am quite new to D language but I can see that posix.d imports
 core.sys.posix.pthread and I thought that on Windows
 Version(Posix) is not defined so how can it compile ?
 Do I need to add a -DPosix or something like that ?
 Do I need to add a Version(Mingw64) inside 
 core.sys.posix.pthread
 ?
 
 Thanks
 
 
 
 
 
 
 
 
 
 
Do you use winpthreads? It seems the thread model is 'wrong': https://github.com/D-Programming-GDC/GDC/blob/master/libphobos/configure.ac#L299 Please post the output of /home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w 4-mingw32/./gcc/gdc -v (I guess threadmodel is posix for winpthreads. But druntime doesn't really understand winpthreads. We'd have to modify core/sys/posix/pthread.d and adjust the version(Posix) block. But it's hard to estimate how many headers we need to change to support this.)
19013692 MLVD0032 MINGW64 ~/MINGW-packages/mingw-w64-gcc $ /home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w 4-mingw32/./gcc/gdc -v Using built-in specs. COLLECT_GCC=C:\DEV\msys64\home\19013692\MINGW-packages\mingw-w64-gcc\src\build-x86_64-w64-mingw32\gcc\gdc.exe Target: x86_64-w64-mingw32 Configured with: ../gcc-5.2.0/configure --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-gxx-include-dir=/mingw64/include/c++/5.2.0 --disable-bootstrap --with-arch=x86-64 --with-tune=generic --enable-languages=c,d --enable-shared --enable-static --enable-libatomic --enable-threads=posix --enable-graphite --enable-fully-dynamic-string --enable-libstdcxx-time=yes --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-version-specific-runtime-libs --disable-isl-version-check --enable-lto --enable-libgomp --disable-multilib --enable-checking=release --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-pkgversion='Rev4, Built by MSYS2 project' --with-bugurl=http://sourceforge.net/projects/msys2 --with-gnu-as --with-gnu-ld Thread model: posix gcc version 5.2.0 (Rev4, Built by MSYS2 project)
Nov 05 2015
parent reply Vincent R <lol dlang.org> writes:
On Thursday, 5 November 2015 at 14:27:20 UTC, Vincent R wrote:
 [...]
I tried to add a version(MinGW) inside core.sys.posix.sys.types to just declare pthread_key_t but it didn't work because I still have exactly the same error. So am I supposed to do ?
Nov 05 2015
parent reply Johannes Pfau <nospam example.com> writes:
Am Thu, 05 Nov 2015 18:42:32 +0000
schrieb Vincent R <lol dlang.org>:

 On Thursday, 5 November 2015 at 14:27:20 UTC, Vincent R wrote:
 [...]  
I tried to add a version(MinGW) inside core.sys.posix.sys.types to just declare pthread_key_t but it didn't work because I still have exactly the same error. So am I supposed to do ?
Porting druntime to use the posix thread model for MinGW could be quite some work. A simpler option is to simply build with the win32 thread model. Try to configure gcc with --enable-threads=win32
Nov 05 2015
parent reply Vincent R <lol dlang.org> writes:
On Thursday, 5 November 2015 at 20:26:27 UTC, Johannes Pfau wrote:
 Am Thu, 05 Nov 2015 18:42:32 +0000
 schrieb Vincent R <lol dlang.org>:

 On Thursday, 5 November 2015 at 14:27:20 UTC, Vincent R wrote:
 [...]
I tried to add a version(MinGW) inside core.sys.posix.sys.types to just declare pthread_key_t but it didn't work because I still have exactly the same error. So am I supposed to do ?
Porting druntime to use the posix thread model for MinGW could be quite some work. A simpler option is to simply build with the win32 thread model. Try to configure gcc with --enable-threads=win32
I tried with win32 and compilation stopped but don't know why: ... config.status: executing gstdint.h commands /mingw64/x86_64-w64-mingw32/bin/ranlib libgphobos2.a make[4]: Leaving directory '/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libphobos/src' make[4]: Entering directory '/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libphobos' true "AR_FLAGS=rc" "CC_FOR_BUILD=x86_64-w64-mingw32-gcc" "CC_FOR_TARGET=/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w6 -mingw32/./gcc/xgcc -B/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64 w64-mingw32/./gcc/" "CFLAGS=-g -march=x86-64 -mtune=generic -O2 -pipe" "CXXFLAGS=-g -march=x86-64 -mtune=generic -O2 -pipe" "CFLAGS_FOR_BUILD=-march=x86-64 -mtune=generic -O2 -pipe" "CFLAGS_FOR_TARGET=-g -march=x86-64 -mtune=generic -O2 -pipe" "GDC_FOR_TARGET=/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w 4-mingw32/./gcc/gdc -B/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64 w64-mingw32/./gcc/" "GDC=/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w 4-mingw32/./gcc/gdc -B/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_6 -w64-mingw32/./gcc/ -L/mingw64/x86_64-w64-mingw32/lib -L/mingw64/lib -isystem /mingw64/x86_64-w64-mingw32/include -isystem /mingw64/include -B/mingw64/x86_64-w64-mingw32/bin/ -B/mingw64/x86_64-w64-mingw32/lib/ -isystem /mingw64/x86_64-w64-mingw32/include -isystem /mingw64/x86_64-w64-mingw32/sys-include " "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c" "LDFLAGS=" "LIBCFLAGS=-g -march=x86-64 -mtune=generic -O2 -pipe" "LIBCFLAGS_FOR_TARGET=-g -march=x86-64 -mtune=generic -O2 -pipe" "MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000 " "PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS=" "exec_prefix=/mingw64" "infodir=/mingw64/share/info" "libdir=/mingw64/lib" "includedir=/mingw64/include" "prefix=/mingw64" "tooldir=/mingw64/x86_64-w64-mingw32" "gdc_include_dir=/mingw64/lib/gcc/x86_64-w64-mingw32/5.2.0/include/d" "AR=/mingw64/x86_64-w64-mingw32/bin/ar" "AS=/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w 4-mingw32/./gcc/as" "LD=/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w64-mingw 2/./gcc/collect-ld" "RANLIB=/mingw64/x86_64-w64-mingw32/bin/ranlib" "NM=/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w 4-mingw32/./gcc/nm" "NM_FOR_BUILD=" "NM_FOR_TARGET=/mingw64/x86_64-w64-mingw32/bin/nm" "DESTDIR=" "WERROR=" DO=all multi-do # make make[4]: Leaving directory '/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libphobos' make[3]: Leaving directory '/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libphobos' make[2]: Leaving directory '/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libphobos' make[1]: Leaving directory '/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w64-mingw32' Makefile:871: recipe for target 'all' failed make: *** [all] Error 2 ==> ERROR: A failure occurred in build(). Aborting...
Nov 06 2015
parent reply Vincent R <lol dlang.org> writes:
On Friday, 6 November 2015 at 09:37:31 UTC, Vincent R wrote:
 On Thursday, 5 November 2015 at 20:26:27 UTC, Johannes Pfau 
 wrote:
 Am Thu, 05 Nov 2015 18:42:32 +0000
 schrieb Vincent R <lol dlang.org>:

 On Thursday, 5 November 2015 at 14:27:20 UTC, Vincent R wrote:
 [...]
I tried to add a version(MinGW) inside core.sys.posix.sys.types to just declare pthread_key_t but it didn't work because I still have exactly the same error. So am I supposed to do ?
Porting druntime to use the posix thread model for MinGW could be quite some work. A simpler option is to simply build with the win32 thread model. Try to configure gcc with --enable-threads=win32
I tried with win32 and compilation stopped but don't know why: ... config.status: executing gstdint.h commands /mingw64/x86_64-w64-mingw32/bin/ranlib libgphobos2.a make[4]: Leaving directory '/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libphobos/src' make[4]: Entering directory '/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libphobos' true "AR_FLAGS=rc" "CC_FOR_BUILD=x86_64-w64-mingw32-gcc" "CC_FOR_TARGET=/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w6 -mingw32/./gcc/xgcc -B/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64 w64-mingw32/./gcc/" "CFLAGS=-g -march=x86-64 -mtune=generic -O2 -pipe" "CXXFLAGS=-g -march=x86-64 -mtune=generic -O2 -pipe" "CFLAGS_FOR_BUILD=-march=x86-64 -mtune=generic -O2 -pipe" "CFLAGS_FOR_TARGET=-g -march=x86-64 -mtune=generic -O2 -pipe" "GDC_FOR_TARGET=/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w 4-mingw32/./gcc/gdc -B/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64 w64-mingw32/./gcc/" "GDC=/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w 4-mingw32/./gcc/gdc -B/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_6 -w64-mingw32/./gcc/ -L/mingw64/x86_64-w64-mingw32/lib -L/mingw64/lib -isystem /mingw64/x86_64-w64-mingw32/include -isystem /mingw64/include -B/mingw64/x86_64-w64-mingw32/bin/ -B/mingw64/x86_64-w64-mingw32/lib/ -isystem /mingw64/x86_64-w64-mingw32/include -isystem /mingw64/x86_64-w64-mingw32/sys-include " "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c" "LDFLAGS=" "LIBCFLAGS=-g -march=x86-64 -mtune=generic -O2 -pipe" "LIBCFLAGS_FOR_TARGET=-g -march=x86-64 -mtune=generic -O2 -pipe" "MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000 " "PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS=" "exec_prefix=/mingw64" "infodir=/mingw64/share/info" "libdir=/mingw64/lib" "includedir=/mingw64/include" "prefix=/mingw64" "tooldir=/mingw64/x86_64-w64-mingw32" "gdc_include_dir=/mingw64/lib/gcc/x86_64-w64-mingw32/5.2.0/include/d" "AR=/mingw64/x86_64-w64-mingw32/bin/ar" "AS=/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w 4-mingw32/./gcc/as" "LD=/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w64-mingw 2/./gcc/collect-ld" "RANLIB=/mingw64/x86_64-w64-mingw32/bin/ranlib" "NM=/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w 4-mingw32/./gcc/nm" "NM_FOR_BUILD=" "NM_FOR_TARGET=/mingw64/x86_64-w64-mingw32/bin/nm" "DESTDIR=" "WERROR=" DO=all multi-do # make make[4]: Leaving directory '/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libphobos' make[3]: Leaving directory '/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libphobos' make[2]: Leaving directory '/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libphobos' make[1]: Leaving directory '/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w64-mingw32' Makefile:871: recipe for target 'all' failed make: *** [all] Error 2 ==> ERROR: A failure occurred in build(). Aborting...
When lookint a bit more to log file I think I found the reason: libtool: compile: /home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w6 -mingw32/./gcc/xgcc -B/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_6 -w64-mingw32/./gcc/ -L/mingw64/x86_64-w64-mingw32/lib -L/mingw64/lib -isystem /mingw64/x86_64-w64-mingw32/include -isystem /mingw64/include -B/mingw64/x86_64-w64-mingw32/bin/ -B/mingw64/x86_64-w64-mingw32/lib/ -isystem /mingw64/x86_64-w64-mingw32/include -isystem /mingw64/x86_64-w64-mingw32/sys-include -DHAVE_CONFIG_H -I. -I../../../gcc-5.2.0/libbacktrace -I ../../../gcc-5.2.0/libbacktrace/../include -I ../../../gcc-5.2.0/libbacktrace/../libgcc -I ../libgcc -funwind-tables -frandom-seed=atomic.lo -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -Wmissing-format-attribute -Wcast-qual -Werror -fPIC -g -march=x86-64 -mtune=generic -O2 -pipe -c ../../../gcc-5.2.0/libbacktrace/atomic.c -DDLL_EXPORT -DPIC -o .libs/atomic.o ../../../gcc-5.2.0/libbacktrace/atomic.c:1:0: error: -fPIC ignored for target (all code is position independent) [-Werror] /* atomic.c -- Support for atomic functions if not present. ^ /home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w 4-mingw32/./gcc/gdc -B/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_6 -w64-mingw32/./gcc/ -L/mingw64/x86_64-w64-mingw32/lib -L/mingw64/lib -isystem /mingw64/x86_64-w64-mingw32/include -isystem /mingw64/include -B/mingw64/x86_64-w64-mingw32/bin/ -B/mingw64/x86_64-w64-mingw32/lib/ -isystem /mingw64/x86_64-w64-mingw32/include -isystem /mingw64/x86_64-w64-mingw32/sys-include -o std/socketstream.o -Wall -g -frelease -O2 -nostdinc -pipe -Wno-deprecated -I../../../../gcc-5.2.0/libphobos/src -I../../../../gcc-5.2.0/libphobos/src/../libdruntime -I./libdruntime/x86_64-w64-mingw32 -c ../../../../gcc-5.2.0/libphobos/src/std/socketstream.d cc1.exe: all warnings being treated as errors config.status: executing libtool commands Makefile:420: recipe for target 'atomic.lo' failed make[3]: *** [atomic.lo] Error 1 make[3]: Leaving directory '/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libbacktrace' Makefile:323: recipe for target 'all' failed make[2]: *** [all] Error 2 make[2]: Leaving directory '/home/19013692/MINGW-packages/mingw-w64-gcc/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libbacktrace' Makefile:11495: recipe for target 'all-target-libbacktrace' failed make[1]: *** [all-target-libbacktrace] Error 2 make[1]: *** Waiting for unfinished jobs.... I saw a patch talking about that https://github.com/venix1/MinGW-GDC/blob/master/patches/gcc/0001-Remove- PIC-for-MinGW.patch so I am going to apply it and start again.
Nov 06 2015
parent reply Vincent R <lol dlang.org> writes:
On Friday, 6 November 2015 at 10:07:53 UTC, Vincent R wrote:
 [...]
Ok I was able to generate a gdc compiler(x64) so now I need to test it and I will keep you informed.
Nov 06 2015
parent reply Vincent R <lol dlang.org> writes:
On Friday, 6 November 2015 at 18:15:06 UTC, Vincent R wrote:
 On Friday, 6 November 2015 at 10:07:53 UTC, Vincent R wrote:
 [...]
Ok I was able to generate a gdc compiler(x64) so now I need to test it and I will keep you informed.
It doesn't work... $ gdc main.d gdc.exe: error: CreateProcess: No such file or directory
Nov 07 2015
parent reply Vincent R <lol dlang.org> writes:
On Saturday, 7 November 2015 at 13:43:52 UTC, Vincent R wrote:
 On Friday, 6 November 2015 at 18:15:06 UTC, Vincent R wrote:
 On Friday, 6 November 2015 at 10:07:53 UTC, Vincent R wrote:
 [...]
Ok I was able to generate a gdc compiler(x64) so now I need to test it and I will keep you informed.
It doesn't work... $ gdc main.d gdc.exe: error: CreateProcess: No such file or directory
Maybe it has something to do with missing files or something like that because when I run the gdc binary from the output folder (and before being packaged) I don'' have this error but on the other hand nothing happens: $ export PATH=~/MINGW-packages/mingw-w64-gcc/src/mingw64/bin:$PATH $ cd "C:\Developer\cygwin64\home\Vincent\projects\dlang\BonjourProvider\src" $ gdc main.d -o toto.exe $ ls toto.exe ls: cannot access toto.Exe: No such file or directory ok so end of story I am going back to c++, I already lost too much time with this.
Nov 07 2015
parent reply Vincent R <lol dlang.org> writes:
On Saturday, 7 November 2015 at 14:13:36 UTC, Vincent R wrote:
 On Saturday, 7 November 2015 at 13:43:52 UTC, Vincent R wrote:
 On Friday, 6 November 2015 at 18:15:06 UTC, Vincent R wrote:
 On Friday, 6 November 2015 at 10:07:53 UTC, Vincent R wrote:
 [...]
Ok I was able to generate a gdc compiler(x64) so now I need to test it and I will keep you informed.
It doesn't work... $ gdc main.d gdc.exe: error: CreateProcess: No such file or directory
Maybe it has something to do with missing files or something like that because when I run the gdc binary from the output folder (and before being packaged) I don'' have this error but on the other hand nothing happens: $ export PATH=~/MINGW-packages/mingw-w64-gcc/src/mingw64/bin:$PATH $ cd "C:\Developer\cygwin64\home\Vincent\projects\dlang\BonjourProvider\src" $ gdc main.d -o toto.exe $ ls toto.exe ls: cannot access toto.Exe: No such file or directory ok so end of story I am going back to c++, I already lost too much time with this.
I tried a last time before and I managed to make it work not completely but at least I can see a hello world application on the console: $ gdc -o main.exe main.d $ ./main.exe Hello D-World! It's late now but I have some questions and feedback about it.
Nov 08 2015
parent reply Johannes Pfau <nospam example.com> writes:
Am Mon, 09 Nov 2015 00:22:52 +0000
schrieb Vincent R <lol dlang.org>:

 I tried a last time before and I managed to make it work not 
 completely but at least I can see a hello world application on 
 the console:
 
 
 $ gdc -o main.exe main.d
 $ ./main.exe
 Hello D-World!
 
 It's late now but I have some questions and feedback about it.
 
Feel free to ask any open questions but please not that GDC on windows is unmaintained, unsupported and any many ways broken. If you want to work on D projects on Windows you're better off with DMD and LDC for now.
Nov 09 2015
parent reply Vincent R <lol dlang.org> writes:
On Monday, 9 November 2015 at 16:47:20 UTC, Johannes Pfau wrote:
 Am Mon, 09 Nov 2015 00:22:52 +0000
 schrieb Vincent R <lol dlang.org>:

 I tried a last time before and I managed to make it work not 
 completely but at least I can see a hello world application on 
 the console:
 
 
 $ gdc -o main.exe main.d
 $ ./main.exe
 Hello D-World!
 
 It's late now but I have some questions and feedback about it.
 
Feel free to ask any open questions but please not that GDC on windows is unmaintained, unsupported and any many ways broken. If you want to work on D projects on Windows you're better off with DMD and LDC for now.
When you say "in many ways" what are exactly the problems I might encounter ?
Nov 10 2015
parent Johannes Pfau <nospam example.com> writes:
Am Tue, 10 Nov 2015 08:03:02 +0000
schrieb Vincent R <lol dlang.org>:

 On Monday, 9 November 2015 at 16:47:20 UTC, Johannes Pfau wrote:
 Am Mon, 09 Nov 2015 00:22:52 +0000
 schrieb Vincent R <lol dlang.org>:
  
 I tried a last time before and I managed to make it work not 
 completely but at least I can see a hello world application on 
 the console:
 
 
 $ gdc -o main.exe main.d
 $ ./main.exe
 Hello D-World!
 
 It's late now but I have some questions and feedback about it.
   
Feel free to ask any open questions but please not that GDC on windows is unmaintained, unsupported and any many ways broken. If you want to work on D projects on Windows you're better off with DMD and LDC for now.
When you say "in many ways" what are exactly the problems I might encounter ?
Nobody ever ran unit tests or the test suite for GDC windows so it's hard to say. But all more advanced code could cause linker errors, Fibers are likely broken, Threads could be broken, std.stdio/std.file might have problems. Basically everything which has got a OS-specific implementation. Portable stuff like std.uuid/std.digest OTOH should work fine.
Nov 10 2015