linking errors with debug build of Python2.4.3

Martin Wiechert martin.wiechert at gmx.de
Wed May 24 10:48:22 EDT 2006


Hi list,

I've created a fresh build of Python 2.4.3 using the following configuration

$ ./configure --with-pydebug --prefix=/usr/local/debug --enable-shared 
--with-fpectl --with-signal-module

in particular I used --with-pydebug.

Now when I start the interpreter some dynamically loaded modules do not see 
debug-related symbols:

$ /usr/local/debug/bin/python
Python 2.4.3 (#1, May 12 2006, 05:35:54)
[GCC 4.1.0 (SUSE Linux)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Traceback (most recent call last):
  File "/etc/pythonstart", line 7, in ?
    import readline
ImportError: /usr/local/debug/lib/python2.4/lib-dynload/readline.so: undefined 
symbol: _Py_RefTotal
>>>

I've attached a shell session with the outputs of ldd and nm on readline.so

What did I do wrong?
My System is SuSE Linux 10.1 on Intel.

Any help would be much appreciated.

Thanks, Martin.
-------------- next part --------------
wiechert at bit:~> ldd /usr/local/debug/lib/python2.4/lib-dynload/readline.so
        linux-gate.so.1 =>  (0xffffe000)
        libreadline.so.5 => /lib/libreadline.so.5 (0xb7edd000)
        libncursesw.so.5 => /usr/lib/libncursesw.so.5 (0xb7e90000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xb7e7c000)
        libc.so.6 => /lib/libc.so.6 (0xb7d5c000)
        libncurses.so.5 => /lib/libncurses.so.5 (0xb7d14000)
        libdl.so.2 => /lib/libdl.so.2 (0xb7d10000)
        /lib/ld-linux.so.2 (0x80000000)
wiechert at bit:~> nm /usr/local/debug/lib/python2.4/lib-dynload/readline.so
         U add_history
00004e68 b begidx
00004e30 A __bss_start
00001780 t call_gmon_start
00002bb7 t call_readline
         U clear_history
00004e40 b completed.5751
00004e64 b completer
         U completion_matches
00004004 d __CTOR_END__
00004000 d __CTOR_LIST__
         w __cxa_finalize@@GLIBC_2.1.3
00004840 d doc_add_history
00004b60 d doc_clear_history
00004640 d doc_get_begidx
000049e0 d doc_get_completer
00004880 d doc_get_completer_delims
00004aa0 d doc_get_current_history_length
000046a0 d doc_get_endidx
00004a40 d doc_get_history_item
00004b00 d doc_get_line_buffer
00004ba0 d doc_insert_text
00004c60 d doc_module
00004260 d doc_parse_and_bind
00004340 d doc_read_history_file
000042c0 d doc_read_init_file
00004be0 d doc_redisplay
00004760 d doc_remove_history
000047c0 d doc_replace_history
000048e0 d doc_set_completer
00004700 d doc_set_completer_delims
00004580 d doc_set_startup_hook
000043c0 d doc_write_history_file
00002e10 t __do_global_ctors_aux
000017b0 t __do_global_dtors_aux
00004240 d __dso_handle
0000400c d __DTOR_END__
00004008 d __DTOR_LIST__
00004014 a _DYNAMIC
00004e30 A _edata
         U emacs_meta_keymap
00004f1c A _end
00004e6c b endidx
         U __errno_location@@GLIBC_2.0
00002e44 T _fini
0000286e t flex_complete
00001810 t frame_dummy
000031ac r __FRAME_END__
         U free@@GLIBC_2.0
00001e6a t get_begidx
000022a1 t get_completer
00002242 t get_completer_delims
000023c1 t get_current_history_length
00001ea2 t get_endidx
0000231f t get_history_item
00001bf3 t get_history_length
00004500 d get_history_length_doc
00002404 t get_line_buffer
00004148 a _GLOBAL_OFFSET_TABLE_
         w __gmon_start__
         U history_get
         U history_get_history_state
0000433c d _history_length
         U history_truncate_file
00001847 t __i686.get_pc_thunk.bx
00002e09 t __i686.get_pc_thunk.cx
000013e8 T _init
00002da9 T initreadline
00002477 t insert_text
00004e80 b jbuf
00004010 d __JCR_END__
00004010 d __JCR_LIST__
         w _Jv_RegisterClasses
         U longjmp@@GLIBC_2.0
         U malloc@@GLIBC_2.0
000026d7 t on_completion
00002542 t on_hook
00002ad8 t onintr
000026b1 t on_startup_hook
00004244 d p.5749
0000184c t parse_and_bind
000021c2 t py_add_history
         U PyArg_ParseTuple
         U PyCallable_Check
0000242c t py_clear_history
         U _Py_Dealloc
         U PyErr_Clear
         U PyErr_Format
         U PyErr_NoMemory
         U PyErr_Occurred
         U PyErr_SetFromErrno
         U PyErr_SetString
         U PyExc_IOError
         U PyExc_TypeError
         U PyExc_ValueError
         U Py_FatalError
         U PyGILState_Ensure
         U PyGILState_Release
         U Py_InitModule4TraceRefs
         U PyInt_AsLong
         U PyInt_FromLong
         U PyMem_Malloc
         U _Py_NegativeRefcount
         U _Py_NoneStruct
         U PyObject_CallFunction
         U PyOS_InputHook
         U PyOS_ReadlineFunctionPointer
         U PyOS_setsig
         U PyOS_snprintf
         U _Py_RefTotal
00001f74 t py_remove_history
00002090 t py_replace_history
         U PyString_AsString
         U PyString_FromString
         U read_history
000019db t read_history_file
00001929 t read_init_file
         U readline
00004cc0 d readline_methods
00002b00 t readline_until_enter_or_signal
000024f7 t redisplay
         U remove_history
         U replace_history_entry
         U rl_attempted_completion_function
         U rl_attempted_completion_over
         U rl_bind_key
         U rl_bind_key_in_map
         U rl_complete
         U rl_completer_word_break_characters
         U rl_completion_append_character
         U rl_event_hook
         U rl_initialize
         U rl_insert
         U rl_insert_text
         U rl_instream
         U rl_line_buffer
         U rl_outstream
         U rl_parse_and_bind
         U rl_prep_terminal
         U rl_read_init_file
         U rl_readline_name
         U rl_redisplay
         U rl_startup_hook
0000226a t set_completer
00001eda t set_completer_delims
00001b6c t set_history_length
00004440 d set_history_length_doc
00001c19 t set_hook
         U _setjmp@@GLIBC_2.0
         U setlocale@@GLIBC_2.0
00001e33 t set_startup_hook
0000299d t setup_readline
         U sigrelse@@GLIBC_2.1
00004e60 b startup_hook
         U strcmp@@GLIBC_2.0
         U strcpy@@GLIBC_2.0
         U strdup@@GLIBC_2.0
         U strncpy@@GLIBC_2.0
         U using_history
         U write_history
00001a8d t write_history_file
wiechert at bit:~>


More information about the Python-list mailing list