[dmd-internals] Assertion failed: (len <= 6), function OmToHeader, file libmach.c, line 168., m

Andrei Alexandrescu andrei at erdani.com
Thu Jun 17 21:05:54 PDT 2010


OK, it's set here:

     /************* Write the library ******************/
     libbuf->write("!<arch>\n", 8);

     ObjModule om;
     om.base = NULL;
     om.length = hoffset - (8 + sizeof(Header));
     om.offset = 8;
     om.name = (char*)"";
     ::time(&om.file_time);
     om.user_id = getuid();
     om.group_id = getgid();
     om.file_mode = 0100644;

Both user_id and group_id are large on my machine. I set them both to 
zero and Phobos passes unittests (except for some std.conv stuff).


Andrei

Walter Bright wrote:
> There are 4 places in libmach.c where user_id is set. Next, I'd put a 
> printf on each of them. See where that number is coming from.
> 
> Andrei Alexandrescu wrote:
>> Did so, got:
>>
>> 611078205
>>
>>
>> Andrei
>>
>> Walter Bright wrote:
>>>
>>>
>>> Andrei Alexandrescu wrote:
>>>> Being on the road with my Mac laptop I thought I'd work on Phobos 
>>>> for a bit. Unfortunately I'm hitting a snag. Here's the build log:
>>>>
>>>> make --no-print-directory -f osx.mak OS=posix BUILD=release
>>>> cc -c  -m32 -O3 etc/c/zlib/adler32.c 
>>>> -ogenerated/posix/release/etc/c/zlib/adler32.o
>>>> cc -c  -m32 -O3 etc/c/zlib/compress.c 
>>>> -ogenerated/posix/release/etc/c/zlib/compress.o
>>>> cc -c  -m32 -O3 etc/c/zlib/crc32.c 
>>>> -ogenerated/posix/release/etc/c/zlib/crc32.o
>>>> cc -c  -m32 -O3 etc/c/zlib/deflate.c 
>>>> -ogenerated/posix/release/etc/c/zlib/deflate.o
>>>> cc -c  -m32 -O3 etc/c/zlib/gzio.c 
>>>> -ogenerated/posix/release/etc/c/zlib/gzio.o
>>>> cc -c  -m32 -O3 etc/c/zlib/infback.c 
>>>> -ogenerated/posix/release/etc/c/zlib/infback.o
>>>> cc -c  -m32 -O3 etc/c/zlib/inffast.c 
>>>> -ogenerated/posix/release/etc/c/zlib/inffast.o
>>>> cc -c  -m32 -O3 etc/c/zlib/inflate.c 
>>>> -ogenerated/posix/release/etc/c/zlib/inflate.o
>>>> cc -c  -m32 -O3 etc/c/zlib/inftrees.c 
>>>> -ogenerated/posix/release/etc/c/zlib/inftrees.o
>>>> cc -c  -m32 -O3 etc/c/zlib/trees.c 
>>>> -ogenerated/posix/release/etc/c/zlib/trees.o
>>>> cc -c  -m32 -O3 etc/c/zlib/uncompr.c 
>>>> -ogenerated/posix/release/etc/c/zlib/uncompr.o
>>>> cc -c  -m32 -O3 etc/c/zlib/zutil.c 
>>>> -ogenerated/posix/release/etc/c/zlib/zutil.o
>>>> make -C ../druntime -f posix.mak
>>>> dmd -lib -oflib/libdruntime.a -Xfdruntime.json -O -release -inline 
>>>> -nofloat -w -d -Isrc -Iimport src/object_.d src/core/atomic.d 
>>>> src/core/bitop.d src/core/cpuid.d src/core/exception.d 
>>>> src/core/memory.d src/core/runtime.d src/core/thread.d 
>>>> src/core/vararg.d src/core/stdc/config.d src/core/stdc/ctype.d 
>>>> src/core/stdc/errno.d src/core/stdc/math.d src/core/stdc/signal.d 
>>>> src/core/stdc/stdarg.d src/core/stdc/stdio.d src/core/stdc/stdlib.d 
>>>> src/core/stdc/stdint.d src/core/stdc/stddef.d src/core/stdc/string.d 
>>>> src/core/stdc/time.d src/core/stdc/wchar_.d 
>>>> src/core/sys/posix/sys/select.d src/core/sys/posix/sys/socket.d 
>>>> src/core/sys/posix/sys/stat.d src/core/sys/posix/sys/wait.d 
>>>> src/core/sys/posix/netinet/in_.d src/core/sync/barrier.d 
>>>> src/core/sync/condition.d src/core/sync/config.d 
>>>> src/core/sync/exception.d src/core/sync/mutex.d 
>>>> src/core/sync/rwmutex.d src/core/sync/semaphore.d src/gc/gc.d 
>>>> src/gc/gcalloc.d src/gc/gcbits.d src/gc/gcstats.d src/gc/gcx.d 
>>>> src/rt/aaA.d src/rt/aApply.d src/rt/aApplyR.d src/rt/adi.d 
>>>> src/rt/alloca.d src/rt/arrayassign.d src/rt/arraybyte.d 
>>>> src/rt/arraycast.d src/rt/arraycat.d src/rt/arraydouble.d 
>>>> src/rt/arrayfloat.d src/rt/arrayint.d src/rt/arrayreal.d 
>>>> src/rt/arrayshort.d src/rt/cast_.d src/rt/cmath2.d src/rt/cover.d 
>>>> src/rt/deh2.d src/rt/dmain2.d src/rt/invariant.d src/rt/invariant_.d 
>>>> src/rt/lifetime.d src/rt/llmath.d src/rt/memory.d src/rt/memset.d 
>>>> src/rt/obj.d src/rt/qsort.d src/rt/switch_.d src/rt/trace.d 
>>>> src/rt/util/console.d src/rt/util/ctype.d src/rt/util/hash.d 
>>>> src/rt/util/string.d src/rt/util/utf.d src/rt/typeinfo/ti_AC.d 
>>>> src/rt/typeinfo/ti_Acdouble.d src/rt/typeinfo/ti_Acfloat.d 
>>>> src/rt/typeinfo/ti_Acreal.d src/rt/typeinfo/ti_Adouble.d 
>>>> src/rt/typeinfo/ti_Afloat.d src/rt/typeinfo/ti_Ag.d 
>>>> src/rt/typeinfo/ti_Aint.d src/rt/typeinfo/ti_Along.d 
>>>> src/rt/typeinfo/ti_Areal.d src/rt/typeinfo/ti_Ashort.d 
>>>> src/rt/typeinfo/ti_byte.d src/rt/typeinfo/ti_C.d 
>>>> src/rt/typeinfo/ti_cdouble.d src/rt/typeinfo/ti_cfloat.d 
>>>> src/rt/typeinfo/ti_char.d src/rt/typeinfo/ti_creal.d 
>>>> src/rt/typeinfo/ti_dchar.d src/rt/typeinfo/ti_delegate.d 
>>>> src/rt/typeinfo/ti_double.d src/rt/typeinfo/ti_float.d 
>>>> src/rt/typeinfo/ti_idouble.d src/rt/typeinfo/ti_ifloat.d 
>>>> src/rt/typeinfo/ti_int.d src/rt/typeinfo/ti_ireal.d 
>>>> src/rt/typeinfo/ti_long.d src/rt/typeinfo/ti_ptr.d 
>>>> src/rt/typeinfo/ti_real.d src/rt/typeinfo/ti_short.d 
>>>> src/rt/typeinfo/ti_ubyte.d src/rt/typeinfo/ti_uint.d 
>>>> src/rt/typeinfo/ti_ulong.d src/rt/typeinfo/ti_ushort.d 
>>>> src/rt/typeinfo/ti_void.d src/rt/typeinfo/ti_wchar.d obj/errno_c.o 
>>>> obj/threadasm.o obj/complex.o obj/critical.o obj/memory_osx.o 
>>>> obj/monitor.o
>>>> Assertion failed: (len <= 6), function OmToHeader, file libmach.c, 
>>>> line 168.
>>>> make[2]: *** [lib/libdruntime.a] Abort trap
>>>> make[1]: *** [../druntime/lib/libdruntime.a] Error 2
>>>> make: *** [release] Error 2
>>>>
>>>> I recall we've discussed this problem before, without having reached 
>>>> a conclusion. What could be the matter?
>>>
>>> Here's the asserting code:
>>>
>>>    len = sprintf(h->user_id, "%u", om->user_id);
>>>    assert(len <= 6);
>>>
>>> I'd add a printf to see what your user_id is.
>>>
>>>>
>>>> I updated and built dmd from svn.
>>>>
>>>
>>> It works when I try it.
>>> _______________________________________________
>>> dmd-internals mailing list
>>> dmd-internals at puremagic.com
>>> http://lists.puremagic.com/mailman/listinfo/dmd-internals
>> _______________________________________________
>> dmd-internals mailing list
>> dmd-internals at puremagic.com
>> http://lists.puremagic.com/mailman/listinfo/dmd-internals
>>
>>
> _______________________________________________
> dmd-internals mailing list
> dmd-internals at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/dmd-internals


More information about the dmd-internals mailing list