You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
OS X installer: readline module breaks when targeting on 10.5 or 10.6 #52313
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
assignee='https://github.com/ronaldoussoren'closed_at=<Date2010-03-08.07:10:24.942>created_at=<Date2010-03-05.10:38:57.260>labels= ['OS-mac', 'type-crash', 'release-blocker']
title='OS X installer: readline module breaks when targeting on 10.5 or 10.6'updated_at=<Date2010-03-08.07:10:24.940>user='https://github.com/ned-deily'
Changes for bpo-6877 to enable the readline module to use the
native OS X editline library instead of GNU readline introduce
a problem for OS X installer builds or other builds using
MACOSX_DEPLOYMENT_TARGET. The test in setup.py to determine
whether to search for a non-system library is based solely
on the OS level of the build system and not the minimum
deployment target level. Without this patch to setup.py,
10.3- or 10.4-targeted installer builds on 10.5 or 10.6
will fail to search for the installer-supplied GNU readline
*and* will be dynamically linked with the crippled
10.4u SDK version of editline, thereby causing the readline
module to crash on all levels of OS X. (The installer build
needs to continue to supply GNU readline because of the broken
10.4 editline).
Symptoms vary by OS level and arch but include bus errors and
test failures such as:
test_readline failed -- line 29, in testHistoryUpdates
self.assertEqual(readline.get_current_history_length(), 2)
AssertionError: 8448056 != 2
[10.5]: Python(71826,0xa0c18820) malloc: *** error for object 0x80e994: Non-aligned pointer being freed
*** set a breakpoint in malloc_error_break to debug
[10.6]: Python(25154,0xa0b73500) malloc: *** error for object 0x80df94: pointer being freed was not allocated
[10.4]: test_readline skipped -- dlopen(/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload/readline.so, 2): Symbol not found: _rl_free_line_state
Patches supplied for 26, trunk(27), and py3k(32), but *not*
31 as the readline changes have not been backported to 31.
The trunk and 2.6 versions of the patch also correct a version
test in setup.py that causes builds on 10.6 to be flooded with
OS X deprecation warnings.
Barry: this definitely needs to be applied before 2.6.5 is released, without the patch I cannot build the mac installers.
The patch disables support for libedit when targetting 10.4, which is IMHO correct because as Ned notes libedit's readline emulation is totally broken in 10.4.
Activity
ned-deily commentedon Mar 5, 2010
2.6.5 release blocker
Changes for bpo-6877 to enable the readline module to use the
native OS X editline library instead of GNU readline introduce
a problem for OS X installer builds or other builds using
MACOSX_DEPLOYMENT_TARGET. The test in setup.py to determine
whether to search for a non-system library is based solely
on the OS level of the build system and not the minimum
deployment target level. Without this patch to setup.py,
10.3- or 10.4-targeted installer builds on 10.5 or 10.6
will fail to search for the installer-supplied GNU readline
*and* will be dynamically linked with the crippled
10.4u SDK version of editline, thereby causing the readline
module to crash on all levels of OS X. (The installer build
needs to continue to supply GNU readline because of the broken
10.4 editline).
Symptoms vary by OS level and arch but include bus errors and
test failures such as:
test_readline failed -- line 29, in testHistoryUpdates
self.assertEqual(readline.get_current_history_length(), 2)
AssertionError: 8448056 != 2
[10.5]: Python(71826,0xa0c18820) malloc: *** error for object 0x80e994: Non-aligned pointer being freed
*** set a breakpoint in malloc_error_break to debug
[10.6]: Python(25154,0xa0b73500) malloc: *** error for object 0x80df94: pointer being freed was not allocated
[10.4]: test_readline skipped -- dlopen(/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload/readline.so, 2): Symbol not found: _rl_free_line_state
Patches supplied for 26, trunk(27), and py3k(32), but *not*
31 as the readline changes have not been backported to 31.
The trunk and 2.6 versions of the patch also correct a version
test in setup.py that causes builds on 10.6 to be flooded with
OS X deprecation warnings.
ronaldoussoren commentedon Mar 7, 2010
Barry: this definitely needs to be applied before 2.6.5 is released, without the patch I cannot build the mac installers.
The patch disables support for libedit when targetting 10.4, which is IMHO correct because as Ned notes libedit's readline emulation is totally broken in 10.4.
warsaw commentedon Mar 7, 2010
Ned, thanks again for another great OS X fix. Ronald, please apply this to release26-maint for 2.6.5 rc 2.
ronaldoussoren commentedon Mar 8, 2010
Committed in r78784 (trunk), r78785 (2.6) and r78786 (3.2)
(BTW. I applied the patch to the trunk then used svnmerge to merge the patch into the other branches)