[sword-devel] BibleTime or Sword crashes on startup on Mac OS X

Alfonso Guerra sword-devel@crosswire.org
Tue, 25 Feb 2003 13:42:57 -0600


On Wednesday, February 19, 2003, at 12:58  PM, Joachim Ansorg wrote:

> Hi!
> Strange.
>
> Seems it's nothing related to locale stuff.
> I attached new version of the localetest program. Could you please 
> send me the
> new output?

Checking working directory for mods.conf...
Checking working directory for mods.d...
Checking SWORD_PATH...
Parsing /sw/etc/sword.conf...
Checking for /sw/etc/sword.conf...found
DataPath in /sw/etc/sword.conf is set to: /sw/share/sword/
Checking for mods.conf in DataPath
Checking for mods.d in DataPath found
Some misc tests:
         (char)1 is  with value 1 and bool value 1
         (char)1 is  with value 0 and bool value 0
VerseKey tests
         Jakobus 1:19 (should be Jakobus 1:19)
         Johannes 1:1 (should be Johannes 1:1)
         Calling setDefaultLocaleName("de") now
         Create key2 now
         Setting en locale now
Testing ListKey functionality
         Creating listkey
         Adding some keys using <<
         Getting Count
         3
         Key 0 is 0x1003d0
         Key 1 is 0x1002b0
         Key 2 is 0x1002e0
         Calling ClearList now
Calling ParseVerseList now
Bus error

>
> Do you use Sword's CVS? If you don't, could you please get it and 
> compile it?
> This way we have the same source code on disk to talk about and to 
> test with.

I had a working CVS compile a few weeks back, but I updated it in order 
to try the latest build with bibletime. Of course sword head isn't in a 
working state right now, so this path will have to wait until it's 
cleared up.

> Is there somewhere a list on differences between Linux and Mac OS X 
> C++ stuff?
> E.g. list of valid ranges of char, int etc.?

Here's limits.h:
/*
  * Copyright (c) 1988, 1993
  *	The Regents of the University of California.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * are met:
  * 1. Redistributions of source code must retain the above copyright
  *    notice, this list of conditions and the following disclaimer.
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in 
the
  *    documentation and/or other materials provided with the 
distribution.
  * 3. All advertising materials mentioning features or use of this 
software
  *    must display the following acknowledgement:
  *	This product includes software developed by the University of
  *	California, Berkeley and its contributors.
  * 4. Neither the name of the University nor the names of its 
contributors
  *    may be used to endorse or promote products derived from this 
software
  *    without specific prior written permission.
  *
  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' 
AND
  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
PURPOSE
  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE 
LIABLE
  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
CONSEQUENTIAL
  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 
GOODS
  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 
STRICT
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 
OF
  * SUCH DAMAGE.
  *
  *	@(#)limits.h	8.3 (Berkeley) 1/4/94
  */
/*
  * HISTORY
  *
  *	10-July-97  Umesh Vaishampayan  (umeshv@apple.com)
  *		Fixed conflicts with float.h. Avoid multiple includes.
  */

#ifndef _PPC_LIMITS_H_
#define _PPC_LIMITS_H_

#define	CHAR_BIT	8		/* number of bits in a char */
#define	MB_LEN_MAX	6		/* Allow 31 bit UTF2 */

#define	CLK_TCK		100		/* ticks per second */

/*
  * According to ANSI (section 2.2.4.2), the values below must be usable 
by
  * #if preprocessing directives.  Additionally, the expression must 
have the
  * same type as would an expression that is an object of the 
corresponding
  * type converted according to the integral promotions.  The 
subtraction for
  * INT_MIN and LONG_MIN is so the value is not unsigned; 2147483648 is 
an
  * unsigned int for 32-bit two's complement ANSI compilers (section 
3.1.3.2).
  * These numbers work for pcc as well.  The UINT_MAX and ULONG_MAX 
values
  * are written as hex so that GCC will be quiet about large integer 
constants.
  */
#define	SCHAR_MAX	127		/* min value for a signed char */
#define	SCHAR_MIN	(-128)		/* max value for a signed char */

#define	UCHAR_MAX	255		/* max value for an unsigned char */
#define	CHAR_MAX	127		/* max value for a char */
#define	CHAR_MIN	(-128)		/* min value for a char */

#define	USHRT_MAX	65535		/* max value for an unsigned short */
#define	SHRT_MAX	32767		/* max value for a short */
#define	SHRT_MIN	(-32768)	/* min value for a short */

#define	UINT_MAX	0xffffffff	/* max value for an unsigned int */
#define	INT_MAX		2147483647	/* max value for an int */
#define	INT_MIN		(-2147483647-1)	/* min value for an int */

#define	ULONG_MAX	0xffffffff	/* max value for an unsigned long */
#define	LONG_MAX	2147483647	/* max value for a long */
#define	LONG_MIN	(-2147483647-1)	/* min value for a long */

#define	ULLONG_MAX	0xffffffffffffffffULL	/* max unsigned long long */
#define	LLONG_MAX	0x7fffffffffffffffLL	/* max signed long long */
#define	LLONG_MIN	(-0x7fffffffffffffffLL-1) /* min signed long long */

#if !defined(_ANSI_SOURCE)
#define	SSIZE_MAX	INT_MAX		/* max value for a ssize_t */

#if !defined(_POSIX_SOURCE) && !defined(_XOPEN_SOURCE)
#define	SIZE_T_MAX	UINT_MAX	/* max value for a size_t */

#define	UQUAD_MAX	ULLONG_MAX
#define	QUAD_MAX	LLONG_MAX
#define	QUAD_MIN	LLONG_MIN

#endif /* !_POSIX_SOURCE && !_XOPEN_SOURCE */
#endif /* !_ANSI_SOURCE */

#if (!defined(_ANSI_SOURCE)&&!defined(_POSIX_SOURCE)) || 
defined(_XOPEN_SOURCE)
#define LONG_BIT	32
#define WORD_BIT	32
#endif /* (!(_ANSI_SOURCE) && !(_POSIX_SOURCE)) || (_XOPEN_SOURCE) */

#endif /* _PPC_LIMITS_H_ */

> Since I have no idea of endianess and plattform stuff this could get a 
> hard
> job.

The primary sticking point I'm encountering right now is why bibletime 
aborts while initializing the static globals. I've been trying to get 
to the bottom of it with gdb, but I lack the familiarity with it to 
know how to find what is causing it to abort.

> I hope we can get Sword and BibleTime running on Mac OS X.

Me too. I'd like to see what features it offers. Though MacSword is 
coming along nicely there are some features I'd like to take advantage 
of now.