Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 9 Jan 2001 23:41:50 +0100 (CET)
From:      System Admin Account <admin@citylink.dinoex.sub.org>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   ports/24207: port "tcl83" cannot load shared objects
Message-ID:  <200101092241.f09Mfoh37959@marmor.dinoex.sub.org>

next in thread | raw e-mail | index | archive | help

>Number:         24207
>Category:       ports
>Synopsis:       port "tcl83" cannot load shared objects
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Jan 09 16:40:00 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     System Admin Account
>Release:        FreeBSD 4.2-RELEASE i386
>Organization:
>Environment:

	vanilla 4.2-RELEASE system.
	lang/tcl83 installed (as it is the newest)
	lang/tcl82 installed (prereq for mail/tkrat2)
	trying to install mail/tkrat2

>Description:

	1. Configure of mail/tkrat2 fails. This is because the
	   configure script within the distribution of tkrat2
	   sees the existing tcl83 installation and wants to use
	   this, whereas the FreeBSD port design dictates it to 
	   use tcl82. Alright, that's quite unavoidable. Best is
	   to bring tkrat2 to use tcl83.
	2. Tried to do this. Thatway found out that tcl83 doesn't
	   work at all: tkrat builds it's own shared library, but 
	   tclsh8.3 cannot load it (tclsh8.2 can). The error tells
	   about a missing symbol, but will claim _any_ symbol as 
	   missing.

	   Further, tclsh8.3 is 500kB in filesize, while tclsh8.2 
	   is 5kB in filesize...

	   Tracking this down gives:
	   When linking tclsh8.2 with libtcl8.2, there is beforehand
	   a symlink created: 
		libtcl8.2.so -> libtcl8.2.so.1
	   (The command to create this symlink is brought into the
	   makefile by a patch from the FreeBSD-patchdir.)

	   In the build of tcl83 this symlink is NOT created.

	   The result is that tclsh8.3 gets linked with libtcl8.3.a
	   (it is linked dynamic nevertheless), and thatway it gets
	   operative as an interpreter, but is not able to load
	   further shared objects via the "load" command.

>How-To-Repeat:

	   See above.

>Fix:

	   Here is a patch for the patch;-} for tcl83.

	   Bringing tkrat2 to use tcl/tk83 is rather trivial, and
	   that port has already changed since tag RELEASE_4_2_0,
	   so I will not attach my diff.

	   -- rgds, PMc

*** ports/lang/tcl83/files/patch-aa.orig	Wed May 10 23:26:50 2000
--- ports/lang/tcl83/files/patch-aa	Tue Jan  9 22:29:47 2001
***************
*** 1,5 ****
! --- Makefile.in.orig	Wed May 10 16:38:48 2000
! +++ Makefile.in	Wed May 10 16:46:00 2000
  @@ -53,7 +53,9 @@
   SCRIPT_INSTALL_DIR	= $(INSTALL_ROOT)$(TCL_LIBRARY)
   
--- 1,5 ----
! --- Makefile.in.orig	Tue Jan  9 21:53:52 2001
! +++ Makefile.in	Tue Jan  9 21:55:51 2001
  @@ -53,7 +53,9 @@
   SCRIPT_INSTALL_DIR	= $(INSTALL_ROOT)$(TCL_LIBRARY)
   
***************
*** 29,36 ****
   
   libraries:
   
! @@ -407,6 +409,11 @@
   	@MAKE_LIB@
   	$(RANLIB) ${TCL_LIB_FILE}
   
  +libtcl${SHORT_TCL_VER}.a: ${OBJS}
--- 29,39 ----
   
   libraries:
   
! @@ -405,8 +407,14 @@
!  ${TCL_LIB_FILE}: ${OBJS} ${STUB_LIB_FILE}
!  	rm -f ${TCL_LIB_FILE}
   	@MAKE_LIB@
+ +	ln -sf ${TCL_LIB_FILE} libtcl${SHORT_TCL_VER}.so
   	$(RANLIB) ${TCL_LIB_FILE}
   
  +libtcl${SHORT_TCL_VER}.a: ${OBJS}
***************
*** 41,47 ****
   ${STUB_LIB_FILE}: ${STUB_LIB_OBJS}
   	rm -f ${STUB_LIB_FILE}
   	@MAKE_STUB_LIB@
! @@ -520,11 +527,16 @@
   	    fi
   	@echo "Installing $(TCL_LIB_FILE) to $(LIB_INSTALL_DIR)/"
   	@$(INSTALL_DATA) $(TCL_LIB_FILE) $(LIB_INSTALL_DIR)/$(TCL_LIB_FILE)
--- 44,50 ----
   ${STUB_LIB_FILE}: ${STUB_LIB_OBJS}
   	rm -f ${STUB_LIB_FILE}
   	@MAKE_STUB_LIB@
! @@ -520,11 +528,16 @@
   	    fi
   	@echo "Installing $(TCL_LIB_FILE) to $(LIB_INSTALL_DIR)/"
   	@$(INSTALL_DATA) $(TCL_LIB_FILE) $(LIB_INSTALL_DIR)/$(TCL_LIB_FILE)
***************
*** 58,64 ****
   	@if test "$(TCL_BUILD_EXP_FILE)" != ""; then \
   	    echo "Installing $(TCL_EXP_FILE) to $(LIB_INSTALL_DIR)/"; \
   	    $(INSTALL_DATA) $(TCL_BUILD_EXP_FILE) \
! @@ -532,8 +544,9 @@
   	    fi
   	@echo "Installing tclsh as $(BIN_INSTALL_DIR)/tclsh$(VERSION)"
   	@$(INSTALL_PROGRAM) tclsh $(BIN_INSTALL_DIR)/tclsh$(VERSION)
--- 61,67 ----
   	@if test "$(TCL_BUILD_EXP_FILE)" != ""; then \
   	    echo "Installing $(TCL_EXP_FILE) to $(LIB_INSTALL_DIR)/"; \
   	    $(INSTALL_DATA) $(TCL_BUILD_EXP_FILE) \
! @@ -532,8 +545,9 @@
   	    fi
   	@echo "Installing tclsh as $(BIN_INSTALL_DIR)/tclsh$(VERSION)"
   	@$(INSTALL_PROGRAM) tclsh $(BIN_INSTALL_DIR)/tclsh$(VERSION)
***************
*** 70,76 ****
   	@if test "$(TCL_STUB_LIB_FILE)" != "" ; then \
   	    echo "Installing $(TCL_STUB_LIB_FILE) to $(LIB_INSTALL_DIR)/"; \
   	    $(INSTALL_DATA) $(STUB_LIB_FILE) \
! @@ -541,7 +554,8 @@
   	    fi
   
   install-libraries: libraries
--- 73,79 ----
   	@if test "$(TCL_STUB_LIB_FILE)" != "" ; then \
   	    echo "Installing $(TCL_STUB_LIB_FILE) to $(LIB_INSTALL_DIR)/"; \
   	    $(INSTALL_DATA) $(STUB_LIB_FILE) \
! @@ -541,7 +555,8 @@
   	    fi
   
   install-libraries: libraries
***************
*** 80,86 ****
   	    do \
   	    if [ ! -d $$i ] ; then \
   		echo "Making directory $$i"; \
! @@ -563,10 +577,16 @@
   	    chmod +x $(SRC_DIR)/install-sh; \
   	    fi
   	@echo "Installing header files";
--- 83,89 ----
   	    do \
   	    if [ ! -d $$i ] ; then \
   		echo "Making directory $$i"; \
! @@ -563,10 +578,16 @@
   	    chmod +x $(SRC_DIR)/install-sh; \
   	    fi
   	@echo "Installing header files";
***************
*** 99,105 ****
   	@echo "Installing library files to $(SCRIPT_INSTALL_DIR)";
   	@for i in $(TOP_DIR)/library/*.tcl $(TOP_DIR)/library/tclIndex $(UNIX_DIR)/tclAppInit.c $(UNIX_DIR)/ldAix; \
   	    do \
! @@ -607,7 +627,6 @@
   	    chmod 444 $(MAN1_INSTALL_DIR)/$$i; \
   	    done;
   	@echo "Cross-linking top-level (.1) docs";
--- 102,108 ----
   	@echo "Installing library files to $(SCRIPT_INSTALL_DIR)";
   	@for i in $(TOP_DIR)/library/*.tcl $(TOP_DIR)/library/tclIndex $(UNIX_DIR)/tclAppInit.c $(UNIX_DIR)/ldAix; \
   	    do \
! @@ -607,7 +628,6 @@
   	    chmod 444 $(MAN1_INSTALL_DIR)/$$i; \
   	    done;
   	@echo "Cross-linking top-level (.1) docs";
***************
*** 107,113 ****
   	@echo "Installing C API (.3) docs";
   	@cd $(TOP_DIR)/doc; for i in *.3; \
   	    do \
! @@ -617,7 +636,6 @@
   	    chmod 444 $(MAN3_INSTALL_DIR)/$$i; \
   	    done;
   	@echo "Cross-linking C API (.3) docs";
--- 110,116 ----
   	@echo "Installing C API (.3) docs";
   	@cd $(TOP_DIR)/doc; for i in *.3; \
   	    do \
! @@ -617,7 +637,6 @@
   	    chmod 444 $(MAN3_INSTALL_DIR)/$$i; \
   	    done;
   	@echo "Cross-linking C API (.3) docs";
***************
*** 115,121 ****
   	@echo "Installing command (.n) docs";
   	@cd $(TOP_DIR)/doc; for i in *.n; \
   	    do \
! @@ -627,7 +645,14 @@
   	    chmod 444 $(MANN_INSTALL_DIR)/$$i; \
   	    done;
   	@echo "Cross-linking command (.n) docs";
--- 118,124 ----
   	@echo "Installing command (.n) docs";
   	@cd $(TOP_DIR)/doc; for i in *.n; \
   	    do \
! @@ -627,7 +646,14 @@
   	    chmod 444 $(MANN_INSTALL_DIR)/$$i; \
   	    done;
   	@echo "Cross-linking command (.n) docs";



>Release-Note:
>Audit-Trail:
>Unformatted:


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200101092241.f09Mfoh37959>