View Ticket
2012-11-15
01:19 Ticket [5a97ada537] .a file order in kitsh build is critical status still Open with 4 other changes artifact: cf55f1f064 user: anonymous
2012-11-07
23:49 New ticket [5a97ada537]. artifact: 4985a44f9c user: anonymous

Ticket Hash: 5a97ada5372a8135eaca7381bd60eb4195cf4634
Title: .a file order in kitsh build is critical
Status: Open Type: Code Defect
Severity: Critical Priority: Immediate
Subsystem: Tcl Resolution: Open
Last Modified: 2012-11-15 01:19:11
Version Found In: all
Description:
kitsh compilation/linkage step is critically dependent upon the order of .a files - specifically, libtclstub86.a *must* appear after libtcldde14.a else the symbols aren't found.

The fix is buildsrc/kitsh-0.0/Makefile.tclkit.in L7-8:
kit: $(OBJS) $(EXTRA_OBJS) $(EXTRA_KIT_DEPS) $(EXTRA_VFS_OBJS) $(ARCHS)
$(CC) $(CPPFLAGS) $(CFLAGS) -o kit -Wl,--start-group $(OBJS) $(EXTRA_OBJS) $(EXTRA_VFS_OBJS) $(ARCHS) -Wl,--end-group $(LDFLAGS) $(LIBS) $(LDFLAGS_ADD)

Adding those -Wl lines will ensure that the .a files are exhaustively searched to resolve all symbols.


anonymous added on 2012-11-15 01:19:11 UTC:
The ddl .a perhaps should not be present in this step at all, which might obviate this problem.