Thread overview
[Bug 217] undefined reference to `OutBuffer::writestring(char const*)'
Mar 28, 2016
Iain Buclaw
Mar 28, 2016
Iain Buclaw
Mar 28, 2016
Johannes Pfau
Mar 28, 2016
Iain Buclaw
Mar 28, 2016
Johannes Pfau
March 28, 2016
http://bugzilla.gdcproject.org/show_bug.cgi?id=217

--- Comment #1 from gdcproject@m-hessel.speedlinq.nl ---
(cloog), gmp, isl, mpc and mpfr are linked in the GCC source...

-- 
You are receiving this mail because:
You are watching all bug changes.

March 28, 2016
http://bugzilla.gdcproject.org/show_bug.cgi?id=217

--- Comment #2 from Iain Buclaw <ibuclaw@gdcproject.org> ---
It shouldn't even be trying to compile that.  It's not a valid C/C++ source file.

-- 
You are receiving this mail because:
You are watching all bug changes.

March 28, 2016
http://bugzilla.gdcproject.org/show_bug.cgi?id=217

--- Comment #3 from Iain Buclaw <ibuclaw@gdcproject.org> ---
Ah, wait.  Let me guess, you are building on a filesystem that ignores case of file names?  What a pain...

-- 
You are receiving this mail because:
You are watching all bug changes.

March 28, 2016
http://bugzilla.gdcproject.org/show_bug.cgi?id=217

Johannes Pfau <johannespfau@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |johannespfau@gmail.com

--- Comment #4 from Johannes Pfau <johannespfau@gmail.com> ---
Might be a MSYS1 problem.

I've successfully built GDC with http://msys2.github.io/ some weeks ago and Vincent R successfully compiled GDC with MSYS2 a few days ago. So the problem is probably related to your build setup.

-- 
You are receiving this mail because:
You are watching all bug changes.

March 28, 2016
http://bugzilla.gdcproject.org/show_bug.cgi?id=217

--- Comment #5 from gdcproject@m-hessel.speedlinq.nl ---
Looking at line 114 in Make-lang.in it should build that ... d/%.o: d/dfrontend/%.c $(D_GENERATED_SRCS) d/verstr.h

Removing 'version.c' should resolve the problem, I'll try that.

-- 
You are receiving this mail because:
You are watching all bug changes.

March 28, 2016
http://bugzilla.gdcproject.org/show_bug.cgi?id=217

--- Comment #6 from gdcproject@m-hessel.speedlinq.nl ---
Removing 'version.c' does not solve this issue.
'parse.c' is also C++ in a C file :(

Is this issue, one of 'no junk in the trunk' type of issue or am I missing somthing?

-- 
You are receiving this mail because:
You are watching all bug changes.

March 28, 2016
http://bugzilla.gdcproject.org/show_bug.cgi?id=217

--- Comment #7 from Iain Buclaw <ibuclaw@gdcproject.org> ---
(In reply to Marwijn from comment #6)
> Removing 'version.c' does not solve this issue.
> 'parse.c' is also C++ in a C file :(
> 

Yes, all DMD sources have a .c extension.  This is not a problem, and won't be fixed in upstream either.  You should not have removed version.c.  :-)


> Is this issue, one of 'no junk in the trunk' type of issue or am I missing somthing?

You are missing the actually error you are getting when you are compiling.

> gcc -static-libstdc++ -static-libgcc -s -Wl,--stack,12582912  d/VERSION.o   -o d/VERSION

There is no way this came from the gdc build config.  So I'm guessing that you've ran this yourself.

-- 
You are receiving this mail because:
You are watching all bug changes.

March 28, 2016
http://bugzilla.gdcproject.org/show_bug.cgi?id=217

--- Comment #8 from Johannes Pfau <johannespfau@gmail.com> ---
All files in dfrontend are c++ files with the .c extension. This was never an issue.

Also version.c isn't the problem. The problem is your build compiles version.c to VERSION.o (this is OK) but then tries to link VERSION.o into VERSION (and it shouldn't do this). version.c will be part of the final cc1d executable, it should not be linked into a VERSION executable. There shouldn't even be a VERSION executable: VERSION is a text file in the source tree https://github.com/D-Programming-GDC/GDC/blob/master/gcc/d/VERSION

What happens is probably this: A rule depends on d/VERSION and make hooks up an
implicit (or GCC rule) which compiles %s.o into %s. Because your build system
messes up version.c (lower case) into VERSION.o that implicit rule not matches
and is invoked. Solution: Try using a newer build system (MSYS2) (on NTFS,
don't know if FAT works).

-- 
You are receiving this mail because:
You are watching all bug changes.

June 10
https://bugzilla.gdcproject.org/show_bug.cgi?id=217

Iain Buclaw <ibuclaw@gdcproject.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|NEW                         |RESOLVED

--- Comment #9 from Iain Buclaw <ibuclaw@gdcproject.org> ---
(In reply to Johannes Pfau from comment #8)
> All files in dfrontend are c++ files with the .c extension. This was never an issue.
> 
> Also version.c isn't the problem. The problem is your build compiles version.c to VERSION.o (this is OK) but then tries to link VERSION.o into VERSION (and it shouldn't do this). version.c will be part of the final cc1d executable, it should not be linked into a VERSION executable. There shouldn't even be a VERSION executable: VERSION is a text file in the source tree https://github.com/D-Programming-GDC/GDC/blob/master/gcc/d/VERSION
> 
> What happens is probably this: A rule depends on d/VERSION and make hooks up
> an implicit (or GCC rule) which compiles %s.o into %s. Because your build
> system messes up version.c (lower case) into VERSION.o that implicit rule
> not matches and is invoked. Solution: Try using a newer build system (MSYS2)
> (on NTFS, don't know if FAT works).

version.c is now named dversion.c as part of the migration towards D.

So this would mean this is now fixed as per the explanation above, the name collision in make should no longer happen.

-- 
You are receiving this mail because:
You are watching all bug changes.