Ticket UUID: | ca61c66e02c7111e760fbd354655b42c048e014d | |||
Title: | TCL+pkg forces thread-enabled package builds; bad for no pthreads systems | |||
Type: | RFE | Version: | 8.6 | |
Submitter: | ashumundra | Created on: | 2013-08-29 07:19:12 | |
Subsystem: | 53. Configuration and Build Tools | Assigned To: | dgp | |
Priority: | 5 Medium | Severity: | Important | |
Status: | Open | Last Modified: | 2016-09-01 16:10:49 | |
Resolution: | None | Closed By: | nobody | |
Closed on: | ||||
Description: |
I am compiling the latest TCL 8.6 source code on a net-bsd 5.1.2 machine for i386 platform. my software has its own implementation of threads therefore it does not use pthread. I am trying to disable pthread and undef TCL_THREADS flag using the following configure options but it does not work. The TCL_THREADS flag is set and I get stuck into compilation issues because there is no pthread library in my system. ./configure --enable-threads=no --enable-threadsafe=no I tried using --disable-threads too, it did not work. | |||
User Comments: |
dgp added on 2013-09-02 16:26:11:
Never mind, it does not matter. The problem you face is that the Tcl+pkgs harness always configures the bundled packages for --enable-threads builds because on any normal system (yours is intentionally crippled) that is the correct choice. A thread-enabled package can [load] into either thread-enabled or thread-disabled Tcl interps. This is the maximally useful build for general installation. For your unusual needs, you will need to configure and build the bundled packages separately, not using the harness. The `make binaries` target will build both Tcl libraries and the tclsh program according to your --disable-threads preference. Then for each bundled package (except for Thread, naturally), you can perform your own `configure --disable-threads; make; make install` from their sources to get a set of binary packages suitable for your no-pthreads platform. Some additional configuration options in the Tcl+pkgs distribution to make this task easier for those who need it seems like a good idea, so I'm leaving this ticket open as a feature request for that. dgp added on 2013-09-02 16:06:54: That error comes from Itcl, not Tcl. Is it the 4.0.0 release of Itcl, or some later snapshot? dgp added on 2013-08-30 17:56:00: On my Centos Linux system, using either the 8.6.0 release or the current trunk of development, when I configure for no threads: $ /path/to/configure --disable-threads ... $ make ... $ ldd libtcl8.6.so linux-vdso.so.1 => (0x00007fff9adfd000) libdl.so.2 => /lib64/libdl.so.2 (0x00002ba6f3538000) libz.so.1 => /lib64/libz.so.1 (0x00002ba6f373d000) libm.so.6 => /lib64/libm.so.6 (0x00002ba6f3951000) libc.so.6 => /lib64/libc.so.6 (0x00002ba6f3bd4000) /lib64/ld-linux-x86-64.so.2 (0x0000003e47c00000) No need for the pthreads library. It's possible things could be different on BSD, but I'd be surprised. Perhaps reporting the error messages you see on failure would further track this down? |