On Tuesday, July 17, 2012 16:34 CEST, "Sebastian Reitenbach" <[email protected]> wrote: > Hi Stefan, > On Tuesday, July 17, 2012 05:26 CEST, Stefan Bidi <[email protected]> > wrote: > > > All, > > I've been quite busy over the last few weeks and just now got around > > to tying all the loose ends for a release of -corebase. For those of > > you unfamiliar with the project, GNUstep-corebase is a free > > implementation of the CoreFoundation framework. > > > > I believe I have fixed all problems reported to me last time. I was > > not able to reproduce everybody's specific issue so please run the > > test suite one last time to check if your problem has, in fact, been > > resolved. > > > > This version will be release as 0.1 and is to be considered an alpha > > release. It requires GNUstep-make, -base and the ICU library. The > > release will be licensed under the LGPL v3. > > I ran the test suite on OpenBSD 5.1 i386 and amd64, with objc from gcc 4.2.1. > GNUstep base last release. > > when compiling on i386, I get this warning: > cc CFStringFormat.c -c \ > -MMD -MP -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 > -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -pthread -pthread -fPIC -DDEBUG > -fno-omit-frame-pointer -Wall -DGSWARN -DGSDIAGNOSE -Wno-import -O2 -pipe -g > -DBUILDING_SELF -DMAC_OS_X_VERSION_MAX_ALLOWED=100700 > -I/usr/local/include/ObjectiveC2 -I../Headers -I. -I/usr/local/include > -I/corebase-0.1_writes_to_HOME/GNUstep/Library/Headers -I/usr/local/include \ > -o obj/libgnustep-corebase.obj/CFStringFormat.c.o > CFStringFormat.c: In function '_CFStringAppendFormatAndArgumentsAux': > CFStringFormat.c:1057: warning: comparison is always false due to limited > range of data type > > other warnings ar only: > warning: no newline at end of file > > one failed files, and one dashed hope. > > the backtrace from the failed file (which just segfaulted) > (gdb) bt > #0 0x0591d82d in kill () from /usr/lib/libc.so.62.0 > #1 0x0595e3f3 in __stack_smash_handler (func=0x26bf0b08 > "CFLocaleCopyCalendar", damaged=2124485768) at > /usr/src/lib/libc/sys/stack_protector.c:89 > #2 0x06c0ac0d in CFLocaleCopyCalendar (loc=Variable "loc" is not available. > ) at CFLocale.c:326 > #3 0x06c0ad22 in CFLocaleCopyKeyword (loc=0x83bd79a8, context=0x26bf004c) at > CFLocale.c:341 > #4 0x06c0a97f in CFLocaleGetValue (locale=0x83bd79a8, key=0x26bf47e0) at > CFLocale.c:743 > #5 0x1c00263d in gnustep_base_user_main () at values.m:36 > #6 0x02dd9b2e in main (argc=1, argv=0x0, env=0x0) at NSProcessInfo.m:989 > #7 0x1c001117 in ___start () > #8 0x1c001092 in _start () > > here on amd64: > (gdb) bt > #0 0x00000002082e67aa in kill () from /usr/lib/libc.so.62.0 > #1 0x000000020832568d in __stack_smash_handler (func=0x207900880 > "CFLocaleCopyCalendar", damaged=Variable "damaged" is not available. > ) at /usr/src/lib/libc/sys/stack_protector.c:89 > #2 0x00000002077e9f65 in CFLocaleCopyCalendar (loc=Variable "loc" is not > available. > ) at CFLocale.c:326 > #3 0x00000002077ea028 in CFLocaleCopyKeyword (loc=Variable "loc" is not > available. > ) at CFLocale.c:341 > #4 0x00000002077e9d0c in CFLocaleGetValue (locale=0x20900e550, > key=0x207a060a0) at CFLocale.c:743 > #5 0x0000000000402b05 in gnustep_base_user_main () at values.m:36 > #6 0x0000000000401791 in ___start () > #7 0x0000000000000001 in ?? () > #8 0x00007f7ffffe0a18 in ?? () > #9 0x0000000000000000 in ?? () > > > It seems, something is overwriting the stack canary. > > icu4c-4.8.1.1 International Components for Unicode
The patch below fixes the problem for me, because a few lines later the following happens, which I guess causes the problem: cLocale = CFLocaleGetCStringIdentifier (loc, buffer, ULOC_FULLNAME_CAPACITY); --- Source/CFLocale.c.orig Tue Jul 17 19:23:00 2012 +++ Source/CFLocale.c Tue Jul 17 19:30:40 2012 @@ -307,7 +307,7 @@ CFLocaleCopyCalendar (CFLocaleRef loc, const void *con CFAllocatorRef allocator = CFGetAllocator (loc); int len; const char *cLocale; - char buffer[ULOC_KEYWORDS_CAPACITY]; + char buffer[ULOC_FULLNAME_CAPACITY]; char cal[ULOC_KEYWORDS_CAPACITY]; UErrorCode err = U_ZERO_ERROR; cheers, Sebastian _______________________________________________ Discuss-gnustep mailing list [email protected] https://lists.gnu.org/mailman/listinfo/discuss-gnustep
