Thread overview
Cannot build GDC 0.18 alpha
Apr 15, 2006
Andrew Madigan
Apr 15, 2006
Brad Roberts
Apr 15, 2006
Andrew Madigan
Apr 15, 2006
Andrew Madigan
Apr 16, 2006
Thomas Kuehne
April 15, 2006
I'm using the source from http://www.puremagic.com/~braddr/d/gdc/

I get the following error from make:

make[1]: Entering directory `/home/nnnnn/local/build/gcc-4.0.3/build/gcc'
make[1]: *** No rule to make target `d/idgen.dmdgen.o', needed by `d/idgen'.
Stop.
make[1]: Leaving directory `/home/nnnnn/local/build/gcc-4.0.3/build/gcc'

Evironment:

Ubuntu Dapper
Linux Kernel 2.6.15-20-686
First Line of output from gcc --version:
gcc (GCC) 4.0.3 (gdc 0.17, using dmd 0.140)
GNU Make

As you can see this system was able to build gdc 0.17, is 0.18 not buildable?
April 15, 2006
On Fri, 14 Apr 2006, Andrew Madigan wrote:

> I'm using the source from http://www.puremagic.com/~braddr/d/gdc/

That wasn't meant for public consumption, but whatever.

> I get the following error from make:
> 
> make[1]: Entering directory `/home/nnnnn/local/build/gcc-4.0.3/build/gcc'
> make[1]: *** No rule to make target `d/idgen.dmdgen.o', needed by `d/idgen'.
> Stop.
> make[1]: Leaving directory `/home/nnnnn/local/build/gcc-4.0.3/build/gcc'

The same make logic is in 0.17, from d/Make-lang.in:

# Make these static because C++ shared libraries are not installed while
# bootstrapping.
d/impcvgen: d/impcnvgen.dmdgen.o
        $(CXX) $(ALL_D_COMPILER_FLAGS) $(LDFLAGS) -o $@ $^
#hmm    $(CC) $(ALL_D_COMPILER_FLAGS) $(LDFLAGS) -static -o $@ $^ -lstdc++
# -static
d/idgen: d/idgen.dmdgen.o
        $(CXX) $(ALL_D_COMPILER_FLAGS) $(LDFLAGS)  -o $@ $^
#argh "-static" wont' work on macosx...? what to do?
#hmm    $(CC) $(ALL_D_COMPILER_FLAGS) $(LDFLAGS) -static -o $@ $^ -lstdc++
d/impcnvtab.c: d/impcvgen
        cd d && ./impcvgen
d/id.c: d/idgen
        cd d && ./idgen
# idgen also generates id.h; just verify id.h exists
d/id.h: d/id.c
        @ ls d/id.h
=========================

Not sure what you're doing to trigger it.  It's not causing me any problems with 0.17 or 0.18.  How are you configuring gcc and how are you building it?

Later,
Brad
April 15, 2006
Brad Roberts wrote:

> On Fri, 14 Apr 2006, Andrew Madigan wrote:
> 
>> I'm using the source from http://www.puremagic.com/~braddr/d/gdc/
> 
> That wasn't meant for public consumption, but whatever.
> 
>> I get the following error from make:
>> 
>> make[1]: Entering directory `/home/nnnnn/local/build/gcc-4.0.3/build/gcc'
>> make[1]: *** No rule to make target `d/idgen.dmdgen.o', needed by
>> `d/idgen'. Stop.
>> make[1]: Leaving directory `/home/nnnnn/local/build/gcc-4.0.3/build/gcc'
> 
> The same make logic is in 0.17, from d/Make-lang.in:
> 
> # Make these static because C++ shared libraries are not installed while
> # bootstrapping.
> d/impcvgen: d/impcnvgen.dmdgen.o
>         $(CXX) $(ALL_D_COMPILER_FLAGS) $(LDFLAGS) -o $@ $^
> #hmm    $(CC) $(ALL_D_COMPILER_FLAGS) $(LDFLAGS) -static -o $@ $^ -lstdc++
> # -static
> d/idgen: d/idgen.dmdgen.o
>         $(CXX) $(ALL_D_COMPILER_FLAGS) $(LDFLAGS)  -o $@ $^
> #argh "-static" wont' work on macosx...? what to do?
> #hmm    $(CC) $(ALL_D_COMPILER_FLAGS) $(LDFLAGS) -static -o $@ $^ -lstdc++
> d/impcnvtab.c: d/impcvgen
>         cd d && ./impcvgen
> d/id.c: d/idgen
>         cd d && ./idgen
> # idgen also generates id.h; just verify id.h exists
> d/id.h: d/id.c
>         @ ls d/id.h
> =========================
> 
> Not sure what you're doing to trigger it.  It's not causing me any problems with 0.17 or 0.18.  How are you configuring gcc and how are you building it?
> 
> Later,
> Brad

Wow, don't I feel like an idiot, I just realized that the gcc I built the last time for gdc doesn't have a C++ compiler, I'll try adding the g++ sources in and reply in a few minutes.
April 15, 2006
Andrew Madigan wrote:

> Brad Roberts wrote:
> 
>> On Fri, 14 Apr 2006, Andrew Madigan wrote:
>> 
>>> I'm using the source from http://www.puremagic.com/~braddr/d/gdc/
>> 
>> That wasn't meant for public consumption, but whatever.
>> 
>>> I get the following error from make:
>>> 
>>> make[1]: Entering directory
>>> `/home/nnnnn/local/build/gcc-4.0.3/build/gcc' make[1]: *** No rule to
>>> make target `d/idgen.dmdgen.o', needed by `d/idgen'. Stop.
>>> make[1]: Leaving directory `/home/nnnnn/local/build/gcc-4.0.3/build/gcc'
>> 
>> The same make logic is in 0.17, from d/Make-lang.in:
>> 
>> # Make these static because C++ shared libraries are not installed while
>> # bootstrapping.
>> d/impcvgen: d/impcnvgen.dmdgen.o
>>         $(CXX) $(ALL_D_COMPILER_FLAGS) $(LDFLAGS) -o $@ $^
>> #hmm    $(CC) $(ALL_D_COMPILER_FLAGS) $(LDFLAGS) -static -o $@ $^
>> #-lstdc++
>> # -static
>> d/idgen: d/idgen.dmdgen.o
>>         $(CXX) $(ALL_D_COMPILER_FLAGS) $(LDFLAGS)  -o $@ $^
>> #argh "-static" wont' work on macosx...? what to do?
>> #hmm    $(CC) $(ALL_D_COMPILER_FLAGS) $(LDFLAGS) -static -o $@ $^
>> #-lstdc++
>> d/impcnvtab.c: d/impcvgen
>>         cd d && ./impcvgen
>> d/id.c: d/idgen
>>         cd d && ./idgen
>> # idgen also generates id.h; just verify id.h exists
>> d/id.h: d/id.c
>>         @ ls d/id.h
>> =========================
>> 
>> Not sure what you're doing to trigger it.  It's not causing me any problems with 0.17 or 0.18.  How are you configuring gcc and how are you building it?
>> 
>> Later,
>> Brad
> 
> Wow, don't I feel like an idiot, I just realized that the gcc I built the last time for gdc doesn't have a C++ compiler, I'll try adding the g++ sources in and reply in a few minutes.

Allright, tried building using the host compiler (exact same environment as used for the 0.17 compile). Now I get this error:

../../gcc/d/d-codegen.cc:2340: error: ‘STATIC_CHAIN_EXPR’ was not declared in this scope

Plus lots of warnings. Any suggestions? (My host gcc is 4.0.3)
April 16, 2006
Andrew Madigan schrieb am 2006-04-15:
> Allright, tried building using the host compiler (exact same environment as used for the 0.17 compile). Now I get this error:
>
> ../../gcc/d/d-codegen.cc:2340: error: ?STATIC_CHAIN_EXPR? was not declared in this scope
>
> Plus lots of warnings. Any suggestions? (My host gcc is 4.0.3)

GCC's 3.4 branch works without problems. 4.0 and 4.1 contain a lot of internal changes - even with their own branches.

Thomas