GSOC Linker project

H. S. Teoh hsteoh at quickfur.ath.cx
Sat May 5 10:00:15 PDT 2012


On Sat, May 05, 2012 at 09:51:40AM -0700, H. S. Teoh wrote:
> On Fri, May 04, 2012 at 02:39:00PM -0700, Adam Wilson wrote:
> > On Fri, 04 May 2012 14:12:16 -0700, H. S. Teoh
> > <hsteoh at quickfur.ath.cx> wrote:
> [...]
> > >Exactly. And while we're at it, *really* strip unnecessary stuff from
> > >.di files, like function bodies, template bodies, etc.. That stuff is
> > >required by the compiler, not the user, so stick that in the object
> > >files and let the compiler deal with it. The .di file should be ONLY
> > >what's needed for the user to understand how to use the library.
> [...]
> > I've written code to do this, but apparently it breaks Phobos in the
> > autotester. I can't get it to break Phobos on my local machine so I'm
> > at a loss as how to fix it. Maybe you can help? The code is here:
> > https://github.com/LightBender/dmd.git
> [...]
> 
> Sorry for taking so long to respond, been busy. Got some time this
> morning to cloned your repo and built dmd, then rebuilt druntime and
> phobos, and got this error from phobos:
> 
> ../druntime/import/core/sys/posix/sys/select.di(25): function declaration without return type. (Note that constructors are always named 'this')
> ../druntime/import/core/sys/posix/sys/select.di(25): no identifier for declarator __FDELT(int d)
> ../druntime/import/core/sys/posix/sys/select.di(27): function declaration without return type. (Note that constructors are always named 'this')
> ../druntime/import/core/sys/posix/sys/select.di(27): no identifier for declarator __FDMASK(int d)
> make[1]: *** [generated/linux/release/32/libphobos2.a] Error 1
> make: *** [release] Error 2
[...]

Oh, and here's the snippet from the offending file
(core/sys/posix/sys/select.di):

------SNIP------
		private 
		{
			alias c_long __fd_mask;
			enum uint __NFDBITS = 8 * __fd_mask.sizeof;
			extern (D) auto __FDELT(int d);		// this is line 25

			extern (D) auto __FDMASK(int d);	// this is line 27

		}
------SNIP------

Looks like the problem is caused by the auto, perhaps?


T

-- 
Lottery: tax on the stupid. -- Slashdotter


More information about the Digitalmars-d mailing list