February 26, 2007
On Sun, 25 Feb 2007 13:37:31 -0800, Gregor Richards wrote:

> Knud Soerensen wrote:
>> On Fri, 23 Feb 2007 21:02:01 -0800, Gregor Richards wrote:
>> 
>> 
>>>This, as I recall, is the same issue you were having with DSSS 0.52. I'm aware of it, but haven't fixed it yet, sorry. I'm still working to figure out that bug.
>>>
>>>  - Gregor Richards
>>>
>>>PS: Does that only happen with dsss_test?
>> 
>> 
>> dsss_test is the first packet I try to install after getting dmd.
>> 
>> I have now tried other packet but most don't even get trough the compile
>> stage.
>> 
>> 
>> Maybe you should implement a simple error reporting mechanism
>> such that if a installation fail dsss report the error by
>> getting  a url http://www.dsource.org/projects/dsss/error?pg=dsss_test&err=65280
>> in this way you can track the error in the server log.
>> 
>> Knud
> 
> If I recall properly, you had installed DMD via DSSS.
> 
> I fixed a bug in that installation, could you `dsss net install dmd` again and see if that fixes anything?
> 
>   - Gregor Richards

It does change something now it calls gcc like
gcc dsss_objs/sss.test.main.o dsss_objs/sss.test.test.o -o dsss_test -m32
-lphobos -lpthread -lm -Xlinker -L./ -Xlinker -L/home/knud/dsss/lib/
-Xlinker -L/home/knud/dsss/lib -Xlinker -L/home/knud/dsss/lib

But it still don't work.
Maybe you should try to remove the -Xlinker instead of adding more :-)

What do you think of my error reporting idea ??
February 26, 2007
Jari-Matti Mäkelä wrote:
> Gregor Richards kirjoitti:
>> Jari-Matti Mäkelä wrote:
>>> Gregor Richards kirjoitti:
>>>
>>>> DSSS, the D Shared Software System, is a tool to ease the building,
>>>> installation, configuration and acquisition of D software.
>>>>
>>>> This release fixes a number of bugs. If you had issues you brought to my
>>>> attention with 0.52, you should try 0.54.
>>>>
>>>> DSSS: http://www.dsource.org/projects/dsss/wiki/
>>>> Rebuild: http://www.dsource.org/projects/dsss/wiki/Rebuild
>>>>
>>>> - Gregor Richards
>>>
>>> Has anyone else experienced segfaults when rebuilding their projects
>>> under Linux with 0.54? Removing the object files / running 'rebuild
>>> project -full' works as a workaround here.
>> I'm afraid I haven't been able to reproduce this error.
> 
> :(
> 
> I have more time tomorrow - I can then compile rebuild from the sources
> with debugging info and send the backtrace. I can also test, if this
> also happens with a manually installation of dmd.

Bizarrely, I just managed to reproduce this on Windows ... but not for all sources ...

Mostly bizarre because I'm almost never on Windows ;)

I'll look at it today or tomorrow (as time permits)

 - Gregor Richards
February 26, 2007
Gregor Richards kirjoitti:
> Jari-Matti Mäkelä wrote:
>> Gregor Richards kirjoitti:
>>> Jari-Matti Mäkelä wrote:
>>>> Gregor Richards kirjoitti:
>>>>
>>>>> DSSS, the D Shared Software System, is a tool to ease the building, installation, configuration and acquisition of D software.
>>>>>
>>>>> This release fixes a number of bugs. If you had issues you brought
>>>>> to my
>>>>> attention with 0.52, you should try 0.54.
>>>>>
>>>>> DSSS: http://www.dsource.org/projects/dsss/wiki/
>>>>> Rebuild: http://www.dsource.org/projects/dsss/wiki/Rebuild
>>>>>
>>>>> - Gregor Richards
>>>>
>>>> Has anyone else experienced segfaults when rebuilding their projects under Linux with 0.54? Removing the object files / running 'rebuild project -full' works as a workaround here.
>>> I'm afraid I haven't been able to reproduce this error.
>>
>> :(
>>
>> I have more time tomorrow - I can then compile rebuild from the sources with debugging info and send the backtrace. I can also test, if this also happens with a manually installation of dmd.
> 
> Bizarrely, I just managed to reproduce this on Windows ... but not for all sources ...
> 
> Mostly bizarre because I'm almost never on Windows ;)
> 
> I'll look at it today or tomorrow (as time permits)

Here's a backtrace from my linux box:

$ echo void main() {} > test.d
$ rebuild test
$ gdb --args rebuild test
GNU gdb 6.6
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...
Using host libthread_db library "/lib/libthread_db.so.1".
(gdb) run
Starting program:
/mnt/home/users/demise/dsss-0.54-dmd-gnuWlinux/bin/rebuild test

Program received signal SIGSEGV, Segmentation fault.
0x0804ac80 in Array::pop (this=0x812c818) at array.c:100
100         return data[--dim];
Current language:  auto; currently c++
(gdb) bt full
#0  0x0804ac80 in Array::pop (this=0x812c818) at array.c:100
No locals.
#1  0x080af88c in main (argc=5, argv=0x812c888) at mars.c:1259
        gc = (GroupedCompile *) 0x812c7f8
        ignore = 1 '\001'
        i = 0
        files = {<Object> = {_vptr.Object = 0x80ef3e8}, dim = 1,
allocdim = 1, data = 0x812a3a0}
        p = 0xbfaee052 "test"
        m = (class Module *) 0x812cb08
        status = 0
        argcstart = 2
        chooseProfile = 0x81004e7 "default"
        envProfile = 0x0
        GroupedCompiles = {<Object> = {_vptr.Object = 0x80ef3e8}, dim =
1, allocdim = 1, data = 0x812cdd0}
        __PRETTY_FUNCTION__ = "int main(int, char**)"
February 26, 2007
Knud Soerensen wrote:
> On Sun, 25 Feb 2007 13:37:31 -0800, Gregor Richards wrote:
> 
>> Knud Soerensen wrote:
>>> On Fri, 23 Feb 2007 21:02:01 -0800, Gregor Richards wrote:
>>>
>>>
>>>> This, as I recall, is the same issue you were having with DSSS 0.52. I'm aware of it, but haven't fixed it yet, sorry. I'm still working to figure out that bug.
>>>>
>>>>  - Gregor Richards
>>>>
>>>> PS: Does that only happen with dsss_test?
>>>
>>> dsss_test is the first packet I try to install after getting dmd.
>>>
>>> I have now tried other packet but most don't even get trough the compile
>>> stage.
>>>  
>>>
>>> Maybe you should implement a simple error reporting mechanism such that if a installation fail dsss report the error by  getting  a url http://www.dsource.org/projects/dsss/error?pg=dsss_test&err=65280
>>> in this way you can track the error in the server log.
>>>
>>> Knud
>> If I recall properly, you had installed DMD via DSSS.
>>
>> I fixed a bug in that installation, could you `dsss net install dmd` again and see if that fixes anything?
>>
>>   - Gregor Richards
> 
> It does change something now it calls gcc like
> gcc dsss_objs/sss.test.main.o dsss_objs/sss.test.test.o -o dsss_test -m32
> -lphobos -lpthread -lm -Xlinker -L./ -Xlinker -L/home/knud/dsss/lib/
> -Xlinker -L/home/knud/dsss/lib -Xlinker -L/home/knud/dsss/lib 
> 
> But it still don't work.

What's the exact response? It should find libphobos in /home/knud/dsss/lib ...

> Maybe you should try to remove the -Xlinker instead of adding more :-)

I didn't change the -Xlinker settings, I just changed how it talks to DMD.

> 
> What do you think of my error reporting idea ??

I'm still tossing it around in my mind. Seems like it could generate a lot of spam ... about 95% of the "bugs" that are sent to me against DSSS and rebuild are actually bugs in the code or compiler.

This one isn't :-P

 - Gregor Richards
February 27, 2007
Jari-Matti Mäkelä wrote:
> Here's a backtrace from my linux box:
> 
> $ echo void main() {} > test.d
> $ rebuild test
> $ gdb --args rebuild test
> GNU gdb 6.6
> Copyright (C) 2006 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you are
> welcome to change it and/or distribute copies of it under certain
> conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB.  Type "show warranty" for details.
> This GDB was configured as "i686-pc-linux-gnu"...
> Using host libthread_db library "/lib/libthread_db.so.1".
> (gdb) run
> Starting program:
> /mnt/home/users/demise/dsss-0.54-dmd-gnuWlinux/bin/rebuild test
> 
> Program received signal SIGSEGV, Segmentation fault.
> 0x0804ac80 in Array::pop (this=0x812c818) at array.c:100
> 100         return data[--dim];
> Current language:  auto; currently c++
> (gdb) bt full
> #0  0x0804ac80 in Array::pop (this=0x812c818) at array.c:100
> No locals.
> #1  0x080af88c in main (argc=5, argv=0x812c888) at mars.c:1259
>         gc = (GroupedCompile *) 0x812c7f8
>         ignore = 1 '\001'
>         i = 0
>         files = {<Object> = {_vptr.Object = 0x80ef3e8}, dim = 1,
> allocdim = 1, data = 0x812a3a0}
>         p = 0xbfaee052 "test"
>         m = (class Module *) 0x812cb08
>         status = 0
>         argcstart = 2
>         chooseProfile = 0x81004e7 "default"
>         envProfile = 0x0
>         GroupedCompiles = {<Object> = {_vptr.Object = 0x80ef3e8}, dim =
> 1, allocdim = 1, data = 0x812cdd0}
>         __PRETTY_FUNCTION__ = "int main(int, char**)"

Aha! Found the bug, fixed the bug. Gracias. Next release (soon) will have this fixed.

 - Gregor Richards
February 27, 2007
On Mon, 26 Feb 2007 13:15:37 -0800, Gregor Richards wrote:
> What's the exact response?


dsss net install dsss-test
Synchronizing...
+ curl -s -S -k http://svn.dsource.org/projects/dsss/sources/source.list -o /home/knud/dsss/share/dsss/sources/source.list -z /home/knud/dsss/share/dsss/sources/source.list
+ curl -s -S -k http://svn.dsource.org/projects/dsss/sources/pkgs.list -o /home/knud/dsss/share/dsss/sources/pkgs.list -z /home/knud/dsss/share/dsss/sources/pkgs.list
+ curl -s -S -k http://svn.dsource.org/projects/dsss/sources/mirrors.list -o /home/knud/dsss/share/dsss/sources/mirrors.list -z /home/knud/dsss/share/dsss/sources/mirrors.list

Working in /tmp/DSSS_dsss-test
+ svn co http://svn.dsource.org/projects/dsss/branches/test
Checked out revision 402.
Creating imports for DD-sss-test

sss/test => DD-sss-test
+ /home/knud/dsss/bin/rebuild -Idsss_imports/ -I. -S./ -I/home/knud/dsss/include/d -S/home/knud/dsss/lib/   -oqdsss_objs  -explicit -lib -full sss/test/test.d -oflibSDD-sss-test.a

sss/test/main.d => dsss_test
+ /home/knud/dsss/bin/rebuild -Idsss_imports/ -I. -S./ -I/home/knud/dsss/include/d -S/home/knud/dsss/lib/   -oqdsss_objs  sss/test/main.d -ofdsss_test
gcc dsss_objs/sss.test.main.o dsss_objs/sss.test.test.o -o dsss_test -m32 -lphobos -lpthread -lm -Xlinker -L./ -Xlinker -L/home/knud/dsss/lib/ -Xlinker -L/home/knud/dsss/lib -Xlinker -L/home/knud/dsss/lib
dsss_objs/sss.test.test.o:(.data+0x0): undefined reference to `_D11TypeInfo_Aa6__initZ'
dsss_objs/sss.test.test.o:(.data+0x34): undefined reference to `_D3std5stdio12__ModuleInfoZ'
dsss_objs/sss.test.test.o:(.gnu.linkonce.d._D13TypeInfo_B2Aa6__initZ+0x0): undefined reference to `_D14TypeInfo_Tuple6__vtblZ'
collect2: ld returned 1 exit status
--- errorlevel 1
Command /home/knud/dsss/bin/rebuild returned with exitcode 65280, aborting.

> It should find libphobos in /home/knud/dsss/lib ...

No, the -L does not work when there is a -Xlinker in front !!

>> Maybe you should try to remove the -Xlinker instead of adding more :-)
> 
> I didn't change the -Xlinker settings, I just changed how it talks to DMD.
> 
>> 
>> What do you think of my error reporting idea ??
> 
> I'm still tossing it around in my mind. Seems like it could generate a lot of spam ... about 95% of the "bugs" that are sent to me against DSSS and rebuild are actually bugs in the code or compiler.

Think on it as a way of verifying that DSSS works!
If DSSS does what it is meant to do the software will be installed
without problems and no error will be reported.

You could always try it out and remove it again if it is a problem.

> 
> This one isn't :-P
> 
>   - Gregor Richards
February 27, 2007
Knud Soerensen wrote:
> On Mon, 26 Feb 2007 13:15:37 -0800, Gregor Richards wrote:
> 
>>What's the exact response? 
> 
> 
> 
> dsss net install dsss-test
> Synchronizing...
> + curl -s -S -k http://svn.dsource.org/projects/dsss/sources/source.list -o /home/knud/dsss/share/dsss/sources/source.list -z /home/knud/dsss/share/dsss/sources/source.list
> + curl -s -S -k http://svn.dsource.org/projects/dsss/sources/pkgs.list -o /home/knud/dsss/share/dsss/sources/pkgs.list -z /home/knud/dsss/share/dsss/sources/pkgs.list
> + curl -s -S -k http://svn.dsource.org/projects/dsss/sources/mirrors.list -o /home/knud/dsss/share/dsss/sources/mirrors.list -z /home/knud/dsss/share/dsss/sources/mirrors.list
> 
> Working in /tmp/DSSS_dsss-test
> + svn co http://svn.dsource.org/projects/dsss/branches/test
> Checked out revision 402.
> Creating imports for DD-sss-test
> 
> sss/test => DD-sss-test
> + /home/knud/dsss/bin/rebuild -Idsss_imports/ -I. -S./ -I/home/knud/dsss/include/d -S/home/knud/dsss/lib/   -oqdsss_objs  -explicit -lib -full sss/test/test.d -oflibSDD-sss-test.a
> 
> sss/test/main.d => dsss_test
> + /home/knud/dsss/bin/rebuild -Idsss_imports/ -I. -S./ -I/home/knud/dsss/include/d -S/home/knud/dsss/lib/   -oqdsss_objs  sss/test/main.d -ofdsss_test gcc dsss_objs/sss.test.main.o dsss_objs/sss.test.test.o -o dsss_test -m32 -lphobos -lpthread -lm -Xlinker -L./ -Xlinker -L/home/knud/dsss/lib/ -Xlinker -L/home/knud/dsss/lib -Xlinker -L/home/knud/dsss/lib dsss_objs/sss.test.test.o:(.data+0x0): undefined reference to `_D11TypeInfo_Aa6__initZ'
> dsss_objs/sss.test.test.o:(.data+0x34): undefined reference to `_D3std5stdio12__ModuleInfoZ'
> dsss_objs/sss.test.test.o:(.gnu.linkonce.d._D13TypeInfo_B2Aa6__initZ+0x0): undefined reference to `_D14TypeInfo_Tuple6__vtblZ'
> collect2: ld returned 1 exit status
> --- errorlevel 1
> Command /home/knud/dsss/bin/rebuild returned with exitcode 65280, aborting.
> 
> 
>>It should find libphobos in /home/knud/dsss/lib ...
> 
> 
> No, the -L does not work when there is a -Xlinker in front !! 

Hm. Well that's a bug in DMD then ... All I do is pass -L-L<whatever> to DMD.

Could you check and make sure there isn't a /lib/libphobos.a, /usr/lib/libphobos.a, etc? If there is, it's probably the problem (though it shouldn't be >_> )

 - Gregor Richards
February 27, 2007
DSSS, the D Shared Software System, is a tool to ease the building,
installation, configuration and acquisition of D software.

This release fixes a segfault bug with Rebuild 0.12.

DSSS: http://www.dsource.org/projects/dsss/wiki/
Rebuild: http://www.dsource.org/projects/dsss/wiki/Rebuild

 - Gregor Richards
February 27, 2007
>>>It should find libphobos in /home/knud/dsss/lib ...
>> 
>> 
>> No, the -L does not work when there is a -Xlinker in front !!
> 
> Hm. Well that's a bug in DMD then ... All I do is pass -L-L<whatever> to DMD.
> 
> Could you check and make sure there isn't a /lib/libphobos.a, /usr/lib/libphobos.a, etc? If there is, it's probably the problem (though it shouldn't be >_> )
> 
>   - Gregor Richards

It seams like a old libphobos had sneaked into /usr/lib.

Now, dsss-test install ok
February 27, 2007
Gregor Richards wrote:
> DSSS, the D Shared Software System, is a tool to ease the building,
> installation, configuration and acquisition of D software.
> 
> This release fixes a segfault bug with Rebuild 0.12.
> 
> DSSS: http://www.dsource.org/projects/dsss/wiki/
> Rebuild: http://www.dsource.org/projects/dsss/wiki/Rebuild
> 

I've been having problems with the library support in rebuild for a while now. It seems the the '-lib' parameter doesn't work as it should?

For example while building DerelictUtil using DSSS:

derelict\util => DD-derelict-util
+ d:\d\dsss\bin\rebuild.exe -Idsss_imports\ -I. -S.\ -Id:\d\dsss\include\d -Sd:\d\dsss\lib\   -oqdsss_objs  -explicit -lib -full derelict\util\exception.d derelict\util\loader.d derelict\util\wintypes.d derelict\util\wrapper.d -ofSDD-derelict-util.lib
'lib' is not recognized as an internal or external command,
operable program or batch file.
Command d:\d\dsss\bin\rebuild.exe returned with exitcode -1, aborting.


This is with the latest release of DSSS.

O.