Return-Path: Delivered-To: apmail-stdcxx-dev-archive@www.apache.org Received: (qmail 80318 invoked from network); 6 May 2008 04:57:30 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 6 May 2008 04:57:30 -0000 Received: (qmail 44427 invoked by uid 500); 6 May 2008 04:57:32 -0000 Delivered-To: apmail-stdcxx-dev-archive@stdcxx.apache.org Received: (qmail 44414 invoked by uid 500); 6 May 2008 04:57:32 -0000 Mailing-List: contact dev-help@stdcxx.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@stdcxx.apache.org Delivered-To: mailing list dev@stdcxx.apache.org Received: (qmail 44403 invoked by uid 99); 6 May 2008 04:57:32 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 05 May 2008 21:57:32 -0700 X-ASF-Spam-Status: No, hits=2.6 required=10.0 tests=DNS_FROM_OPENWHOIS,SPF_HELO_PASS,SPF_PASS,WHOIS_MYPRIVREG X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of lists@nabble.com designates 216.139.236.158 as permitted sender) Received: from [216.139.236.158] (HELO kuber.nabble.com) (216.139.236.158) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 06 May 2008 04:56:38 +0000 Received: from isper.nabble.com ([192.168.236.156]) by kuber.nabble.com with esmtp (Exim 4.63) (envelope-from ) id 1JtFEY-0001BI-G1 for dev@stdcxx.apache.org; Mon, 05 May 2008 21:56:58 -0700 Message-ID: <17071584.post@talk.nabble.com> Date: Mon, 5 May 2008 21:56:58 -0700 (PDT) From: pegasus2000 To: dev@stdcxx.apache.org Subject: Undefined symbols in STDCXX library for Nanodesktop MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Nabble-From: pegasus2000@email.it X-Virus-Checked: Checked by ClamAV on apache.org The library has been compiled using a special makefile.gcc, compatible with the features of Nanodesktop. After, I write a simple test program as this: #include #include int main() { ndInitSystem (); using namespace std; cout << "Hello World!"; return 0; } The linker finds undefined references: [Linker error] undefined reference to `vtable for __cxxabiv1::__vmi_class_type_info' [Linker error] undefined reference to `vtable for __cxxabiv1::__class_type_info' [Linker error] undefined reference to `std::basic_ostream >& __rw::__rw_insert, long double>(std::basic_ostream >&, long double)' I have already applied Sebor's patch for disabling MMAP/MUNMAP and it works. The strange thing is the undefined reference in basic_ostream. Have you some ideas about this ? And... what about the CXXABI symbols ? Thanks Filippo Battaglia NOTE: Under Nanodesktop there isn't a command like "make", so we have used the test programs in /etc/config to create a particular homebrew (i.e. a nd application) that generates a config.h file. The config.h file that we are using is this: #define _RWSTD_BOOL_SIZE 1 /* sizeof (bool) */ #define _RWSTD_CHAR_SIZE 1 /* sizeof (char) */ #define _RWSTD_SHRT_SIZE 2 /* sizeof (short) */ #define _RWSTD_INT_SIZE 4 /* sizeof (int) */ #define _RWSTD_LONG_SIZE 4 /* sizeof (long) */ #define _RWSTD_FLT_SIZE 4 /* sizeof (float) */ #define _RWSTD_DBL_SIZE 4 /* sizeof (double) */ #define _RWSTD_PTR_SIZE 4 /* sizeof (void*) */ #define _RWSTD_FUNPTR_SIZE 4 /* sizeof (void(*)()) */ #define _RWSTD_MEMPTR_SIZE 8 /* sizeof (void (struct::*)()) */ #define _RWSTD_CHAR_BIT 8 #define _RWSTD_BOOL_MIN !!0 #define _RWSTD_BOOL_MAX !0 // #define _RWSTD_NO_TWOS_COMPLEMENT #define _RWSTD_CHAR_MAX '\x7f' #define _RWSTD_CHAR_MIN (-_RWSTD_CHAR_MAX - 1) #define _RWSTD_SCHAR_MAX 0x7f #define _RWSTD_SCHAR_MIN (-_RWSTD_SCHAR_MAX - 1) #define _RWSTD_UCHAR_MAX 0xffU #define _RWSTD_UCHAR_MIN 0x1U #define _RWSTD_SHRT_MAX 0x7fff #define _RWSTD_SHRT_MIN (-_RWSTD_SHRT_MAX - 1) #define _RWSTD_USHRT_MAX 0xffffU #define _RWSTD_USHRT_MIN 0x1U #define _RWSTD_INT_MAX 0x7fffffff #define _RWSTD_INT_MIN (-_RWSTD_INT_MAX - 1) #define _RWSTD_UINT_MAX 0xffffffffU #define _RWSTD_UINT_MIN 0x1U #define _RWSTD_LONG_MAX 0x7fffffffL #define _RWSTD_LONG_MIN (-_RWSTD_LONG_MAX - 1L) #define _RWSTD_ULONG_MAX 0xffffffffUL #define _RWSTD_ULONG_MIN 0x1UL #define _RWSTD_LLONG_SIZE 8 #define _RWSTD_LLONG_MAX 0x7fffffffffffffffLL #define _RWSTD_LLONG_MIN (-_RWSTD_LLONG_MAX - 1LL) #define _RWSTD_ULLONG_MAX 0xffffffffffffffffULL #define _RWSTD_ULLONG_MIN 0x1ULL #define _RWSTD_WCHAR_SIZE 4 /* sizeof (wchar_t) */ #define _RWSTD_WCHAR_MAX 0x7fffffff #define _RWSTD_WCHAR_MIN (-_RWSTD_WCHAR_MAX - 1) #define _RWSTD_MB_LEN_MAX 1 /* libc value */ #define _RWSTD_INT8_T signed char #define _RWSTD_UINT8_T unsigned char #define _RWSTD_INT16_T short #define _RWSTD_UINT16_T unsigned short #define _RWSTD_INT32_T int #define _RWSTD_UINT32_T unsigned int #define _RWSTD_INT64_T long long #define _RWSTD_UINT64_T unsigned long long #define _RWSTD_INT_LEAST8_T _RWSTD_INT8_T #define _RWSTD_UINT_LEAST8_T _RWSTD_UINT8_T #define _RWSTD_INT_LEAST16_T _RWSTD_INT16_T #define _RWSTD_UINT_LEAST16_T _RWSTD_UINT16_T #define _RWSTD_INT_LEAST32_T _RWSTD_INT32_T #define _RWSTD_UINT_LEAST32_T _RWSTD_UINT32_T #define _RWSTD_INT_LEAST64_T _RWSTD_INT64_T #define _RWSTD_UINT_LEAST64_T _RWSTD_UINT64_T #define _RWSTD_FLT_ROUNDS 1 /* round to nearest */ #define _RWSTD_DBL_DIG 6 #define _RWSTD_DBL_MANT_DIG 24 #define _RWSTD_DBL_MAX_10_EXP 38 #define _RWSTD_DBL_MAX_EXP 128 #define _RWSTD_DBL_MIN_10_EXP -37 #define _RWSTD_DBL_MIN_EXP -125 #define _RWSTD_FLT_DIG 6 #define _RWSTD_FLT_MANT_DIG 24 #define _RWSTD_FLT_MAX_10_EXP 38 #define _RWSTD_FLT_MAX_EXP 128 #define _RWSTD_FLT_MIN_10_EXP -37 #define _RWSTD_FLT_MIN_EXP -125 #define _RWSTD_FLT_RADIX 2 #define _RWSTD_DBL_MAX 3.40282347e+38 #define _RWSTD_FLT_MAX 3.40282347e+38F #define _RWSTD_DBL_EPSILON 1.19209290e-7 #define _RWSTD_DBL_MIN 1.17549435e-38 #define _RWSTD_FLT_EPSILON 1.19209290e-7F #define _RWSTD_FLT_MIN 1.17549435e-38F #define _RWSTD_NO_STRTOF_UFLOW #define _RWSTD_NO_STRTOD_UFLOW #define _RWSTD_CLOCK_T unsigned long #define _RWSTD_PTRDIFF_T int #define _RWSTD_SIZE_T unsigned #define _RWSTD_SIZE_MAX _RWSTD_UINT_MAX #define _RWSTD_PTRDIFF_MIN _RWSTD_INT_MIN #define _RWSTD_PTRDIFF_MAX _RWSTD_INT_MAX #define _RWSTD_TIME_T long #define _RWSTD_NO_CLOCKS_PER_SEC #define _RWSTD_RAND_MAX 2147483647 #define _RWSTD_EOF -1 #define _RWSTD_WEOF -1 #define _RWSTD_NO_L_TMPNAM #define _RWSTD_IOFBF 0 #define _RWSTD_IOLBF 256 #define _RWSTD_IONBF 4 #define _RWSTD_BUFSIZ 1024 #define _RWSTD_FOPEN_MAX 20 #define _RWSTD_FILENAME_MAX 1024 #define _RWSTD_NO_TMP_MAX #define _RWSTD_FPOS_T long #define _RWSTD_NO_ABS_BOOL #define _RWSTD_NO_ABS_CHAR #define _RWSTD_NO_ABS_SCHAR #define _RWSTD_NO_ABS_UCHAR #define _RWSTD_NO_ABS_SHRT #define _RWSTD_NO_ABS_USHRT // #define _RWSTD_NO_ABS_INT #define _RWSTD_NO_ABS_UINT #define _RWSTD_NO_ABS_LONG #define _RWSTD_NO_ABS_ULONG #define _RWSTD_NO_ABS_LLONG #define _RWSTD_NO_ABS_ULLONG #define _RWSTD_STDIN_FILENO (int)(&StreamsArray [0]) #define _RWSTD_STDOUT_FILENO (int)(&StreamsArray [1]) #define _RWSTD_STDERR_FILENO (int)(&StreamsArray [2]) #define _RWSTD_O_RDONLY 0x1 // O_RDONLY #define _RWSTD_O_WRONLY 0x2 // O_WRONLY #define _RWSTD_O_RDWR 0x3 // O_RDWR #define _RWSTD_O_ACCMODE 0x3 // O_ACCMODE #define _RWSTD_O_APPEND 0x100 // O_APPEND #define _RWSTD_O_EXCL 0x800 // O_EXCL #define _RWSTD_O_CREAT 0x200 // O_CREAT #define _RWSTD_O_TRUNC 0x400 // O_TRUNC #define _RWSTD_SEEK_SET 0x0 // SEEK_SET #define _RWSTD_SEEK_CUR 0x1 // SEEK_CUR #define _RWSTD_SEEK_END 0x2 // SEEK_END #define _RWSTD_F_GETFL 0x3 // F_GETFL #define _RWSTD_OFF_T long // off_t #define _RWSTD_SSIZE_T int // ssize_t #define _RWSTD_LC_COLLATE 1 #define _RWSTD_LC_CTYPE 2 #define _RWSTD_LC_MONETARY 3 #define _RWSTD_LC_NUMERIC 4 #define _RWSTD_LC_TIME 5 #define _RWSTD_LC_MESSAGES 6 #define _RWSTD_LC_ALL 0 #define _RWSTD_LC_MAX _RWSTD_LC_MESSAGES #define _RWSTD_LC_MIN _RWSTD_LC_ALL // no locales found, using Nanodesktop PSP format // #define _RWSTD_NO_SETLOCALE_ENVIRONMENT #define _RWSTD_NO_CAT_NAMES #define _RWSTD_CAT_SEP "/" #define _RWSTD_NO_CAT_EQ #define _RWSTD_NO_INITIAL_CAT_SEP #define _RWSTD_NO_CONDENSED_NAME #define _RWSTD_WCTYPE_T unsigned long // IEEE 754 infinities and NANs for a big endian architecture // (values not computed due to floating exception trapping) #define _RWSTD_FLT_INF_BITS { '\x7f', '\x80', 0, 0 } #define _RWSTD_FLT_QNAN_BITS { '\xff', '\xc0', 0, 0 } #define _RWSTD_FLT_SNAN_BITS { '\x7f', '\x80', 0, '\x1' } #define _RWSTD_FLT_DENORM_MIN_BITS { 0, 0, 0, '\x1' } #define _RWSTD_FLT_HAS_DENORM 1 #define _RWSTD_DBL_INF_BITS { '\x7f', '\xf0', 0, 0 } #define _RWSTD_DBL_QNAN_BITS { '\xff', '\xf8', 0, 0 } #define _RWSTD_DBL_SNAN_BITS { '\x7f', '\xf0', 0, 0 } #define _RWSTD_DBL_DENORM_MIN_BITS { 0, 0, 0, 0 } #define _RWSTD_DBL_HAS_DENORM 1 #define _RWSTD_LCONV { /* sizeof (lconv) == 48 */ \ char* decimal_point; \ char* thousands_sep; \ char* grouping; \ char* int_curr_symbol; \ char* currency_symbol; \ char* mon_decimal_point; \ char* mon_thousands_sep; \ char* mon_grouping; \ char* positive_sign; \ char* negative_sign; \ char int_frac_digits; \ char frac_digits; \ char p_cs_precedes; \ char p_sep_by_space; \ char n_cs_precedes; \ char n_sep_by_space; \ char p_sign_posn; \ char n_sign_posn; \ } #define _RWSTD_NO_FWSCANF #define _RWSTD_NO_SWSCANF #define _RWSTD_NO_WSCANF #define _RWSTD_NO_WCSFTIME #define _RWSTD_NO_STD_MBSTATE_T #define _RWSTD_NO_LONG_DOUBLE #define _RWSTD_NO_STRUCT_TM_IN_WCHAR_H #define _RWSTD_NO_FENV_H #define _RWSTD_NO_LOCALE_NAME_FMAT #define _RWSTD_NO_ABS_FLT #define _RWSTD_NO_ABS_DBL #define _RWSTD_NO_NL_TYPES_H #define _RWSTD_NO_LCONV_INT_FMAT #define _RWSTD_NO_NEW_OFLOW_SAFE #define _RWSTD_NO_OPERATOR_NEW_PLACEMENT #define _RWSTD_NO_OPERATOR_DELETE_PLACEMENT #define _RWSTD_NO_DYNAMIC_CAST #define _RWSTD_NO_STD_UNCAUGHT_EXCEPTION #define _RWSTD_NO_GLOBAL_UNCAUGHT_EXCEPTION #define _RWSTD_NO_EXCEPTION_DEFAULT_CTOR #define _RWSTD_NO_EXCEPTION_COPY_CTOR #define _RWSTD_NO_EXCEPTION_DTOR #define _RWSTD_NO_EXCEPTION_ASSIGNMENT #define _RWSTD_NO_EXCEPTION_WHAT #define _RWSTD_NO_STD_NOTHROW #define _RWSTD_NO_GLOBAL_NOTHROW #define _RWSTD_NO_STD_NOTHROW_T #define _RWSTD_NO_GLOBAL_NOTHROW_T #define _RWSTD_NO_MMAP #define _RWSTD_NO_MUNMAP #define _RWSTD_NO_EXTERN_TEMPLATE_BEFORE_DEFINITION The modules in /src are compiled one by one by a particular makefile.gcc as this: ./obj_PSPE/core/assert.o: ./src/assert.cpp $(CPP) -c ./src/assert.cpp -o ./obj_PSPE/core/assert.o $(CFLAGS_PSPE) $(INCLUDE) ./obj_PSPE/core/bitset.o: ./src/bitset.cpp $(CPP) -c ./src/bitset.cpp -o ./obj_PSPE/core/bitset.o $(CFLAGS_PSPE) $(INCLUDE) ./obj_PSPE/core/catalog.o: ./src/catalog.cpp $(CPP) -c ./src/catalog.cpp -o ./obj_PSPE/core/catalog.o $(CFLAGS_PSPE) $(INCLUDE) ./obj_PSPE/core/codecvt.o: ./src/codecvt.cpp $(CPP) -c ./src/codecvt.cpp -o ./obj_PSPE/core/codecvt.o $(CFLAGS_PSPE) $(INCLUDE) ./obj_PSPE/core/collate.o: ./src/collate.cpp $(CPP) -c ./src/collate.cpp -o ./obj_PSPE/core/collate.o $(CFLAGS_PSPE) $(INCLUDE) ./obj_PSPE/core/ctype.o: ./src/ctype.cpp $(CPP) -c ./src/ctype.cpp -o ./obj_PSPE/core/ctype.o $(CFLAGS_PSPE) $(INCLUDE) ./obj_PSPE/core/ctype_bits.o: ./src/ctype_bits.cpp $(CPP) -c ./src/ctype_bits.cpp -o ./obj_PSPE/core/ctype_bits.o $(CFLAGS_PSPE) $(INCLUDE) << and other modules.... >> -- View this message in context: http://www.nabble.com/Undefined-symbols-in-STDCXX-library-for-Nanodesktop-tp17071584p17071584.html Sent from the stdcxx-dev mailing list archive at Nabble.com.