| Ticket UUID: | 07eb49661ae9a183957cf732bbe5a544fed034c2 | ||
| Title: | Change to genStubs.tcl between 8.6 and 8.7 breaks packages for macOS. | ||
| Type: | Bug | Created on: | 2020-08-29 20:13:57 |
| Submitter: | marc_culler | Assigned to: | jan.nijtmans |
| Subsystem: | - New Stub Entries | Severity: | Minor |
| Priority: | 5 Medium | Last modified: | 2020-09-16 15:43:39 |
| Status: | Closed | Closed by: | jan.nijtmans |
| Resolution: | Fixed | Closed on: | 2020-09-16 15:43:39 |
| Version: | |||
| Description: | ||||
An example of a package which breaks for 8.7 is tkTable. In tkInt.decls the X stubs are marked with platform macosx. In 8.6 the macosx platform is guarded with the line: #ifdef MAC_OSX_TK /* AQUA */ For 8.7 the genStubs.tcl script was changed, so that the macosx platform is instead guarded by the line: #ifdef MAC_OSX_TCL /* MACOSX */ Packages such as tkTable written for 8.6 define MAC_OSX_TK when USE_STUBS is defined. But they do not define MAC_OSX_TCL. Consequently when building such a package there is a linker error reporting a missing symbol for each X stub that the package uses. There is a simple fix, which was not so simple to diagnose, however. That is to reclassify the X stubs for macOS as aqua instead of macosx. I will commit a bug-fix branch containing this change. | ||||
| User Comments: | ||||
marc_culler (claiming to be Marc Culler) added on 2020-08-29 20:21:46:
Note: This ticket was submitted to Tcl since the change that led to the problem was in Tcl. But the fix is actually in Tk. So this could be regarded as a Tk bug. The Tk changes which should have accompanied the Tcl changes were not made. jan.nijtmans added on 2020-08-29 20:25:14:
Well, there was a reason for this change, therefore I propose a different solution in Tk only. jan.nijtmans added on 2020-08-29 20:36:43:
Fix committed to trunk now. I'll explain later. | ||||
