Opened 12 years ago

Last modified 3 months ago

#38182 new defect

tcLex @1.2a1 build failure: missing header: <tclInt.h>

Reported by: cooljeanius (Eric Gallager) Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 2.1.3
Keywords: Cc:
Port: tcLex

Description

Log is attached. Relevant part of log including error:

DEBUG: Environment: CPATH='/opt/local/include' CC_PRINT_OPTIONS_FILE='/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_textproc_tcLex/tcLex/work/.CC_PRINT_OPTIONS' LIBRARY_PATH='/opt/local/lib' CC_PRINT_OPTIONS='YES' MACOSX_DEPLOYMENT_TARGET='10.7'
DEBUG: Assembled command: 'cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_textproc_tcLex/tcLex/work/tcLex1.2a1/src" && /usr/bin/make -j4 -w all'
DEBUG: Executing command line:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_textproc_tcLex/tcLex/work/tcLex1.2a1/src" && /usr/bin/make -j4 -w all 
make: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_textproc_tcLex/tcLex/work/tcLex1.2a1/src'
/usr/bin/clang  -fno-common -framework Tcl -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_tcl/tcl/work/tcl8.6.0/generic -I/opt/local/include -DTCLEX_VERSION=\"1.2\"   -c -o tcLex.o tcLex.c
/usr/bin/clang  -fno-common -framework Tcl -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_tcl/tcl/work/tcl8.6.0/generic -I/opt/local/include -DTCLEX_VERSION=\"1.2\"   -c -o tcLexRE.o tcLexRE.c
(if test -f /opt/local/lib/tcLex1.2/pkgIndex.tcl; \
	    then grep -v 1.2 /opt/local/lib/tcLex1.2/pkgIndex.tcl; \
	else true; fi;) | \
	echo 'package ifneeded tcLex 1.2 [list load [file join $dir tcLex.dylib.1.2] tcLex]' > pkgIndex.tcl
clang: clang: warning: -framework Tcl: 'linker' input unusedwarning: 
-framework Tcl: 'linker' input unused
tcLexRE.c:6:10: fatal error: 'tclInt.h' file not found
tcLex.c:26:10: fatal error: 'tclInt.h' file not found
#include <tclInt.h>
         ^
#include <tclInt.h>
         ^
1 error generated.
make: *** [tcLexRE.o] Error 1
make: *** Waiting for unfinished jobs....
1 error generated.
make: *** [tcLex.o] Error 1
make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_textproc_tcLex/tcLex/work/tcLex1.2a1/src'
Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_textproc_tcLex/tcLex/work/tcLex1.2a1/src" && /usr/bin/make -j4 -w all 
Exit code: 2
Error: org.macports.build for port tcLex returned: command execution failed
DEBUG: Error code: CHILDSTATUS 21927 2
DEBUG: Backtrace: command execution failed
    while executing
"system -nice 0 $fullcmdstring"
    ("eval" body line 1)
    invoked from within
"eval system $notty $nice \$fullcmdstring"
    invoked from within
"command_exec build"
    (procedure "portbuild::build_main" line 8)
    invoked from within
"$procedure $targetname"
Warning: targets not executed for tcLex: org.macports.activate org.macports.build org.macports.destroot org.macports.install

Relevant system info:

gl00b05046:~ root# uname -a
Darwin gl00b05046.cats.gwu.edu 11.4.2 Darwin Kernel Version 11.4.2: Thu Aug 23 16:25:48 PDT 2012; root:xnu-1699.32.7~1/RELEASE_X86_64 x86_64
gl00b05046:~ root# port version
Version: 2.1.3
gl00b05046:~ root# port installed tcl
The following ports are currently installed:
  tcl @8.6.0_1+corefoundation+threads+universal (active)
gl00b05046:~ root# port contents tcl | grep \\.h
  /opt/local/include/fakemysql.h
  /opt/local/include/fakepq.h
  /opt/local/include/fakesql.h
  /opt/local/include/itcl.h
  /opt/local/include/itcl2TclOO.h
  /opt/local/include/itclDecls.h
  /opt/local/include/itclInt.h
  /opt/local/include/itclIntDecls.h
  /opt/local/include/itclMigrate2TclCore.h
  /opt/local/include/itclTclIntStubsFcn.h
  /opt/local/include/mysqlStubs.h
  /opt/local/include/odbcStubs.h
  /opt/local/include/pqStubs.h
  /opt/local/include/tcl.h
  /opt/local/include/tclDecls.h
  /opt/local/include/tclOO.h
  /opt/local/include/tclOODecls.h
  /opt/local/include/tclPlatDecls.h
  /opt/local/include/tclThread.h
  /opt/local/include/tclTomMath.h
  /opt/local/include/tclTomMathDecls.h
  /opt/local/include/tdbc.h
  /opt/local/include/tdbcDecls.h
  /opt/local/include/tdbcInt.h

tcLex is nomaintainer so anyone can try to fix this...

Attachments (1)

main.log (14.1 KB) - added by cooljeanius (Eric Gallager) 12 years ago.
tcLex's main.log

Download all attachments as: .zip

Change History (6)

Changed 12 years ago by cooljeanius (Eric Gallager)

Attachment: main.log added

tcLex's main.log

comment:1 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Summary: tcLex @1.2a1 build failure on Lion: missing header: <tclInt.h>tcLex @1.2a1 build failure: missing header: <tclInt.h>

The problem is tclInt.h is a private header; projects should not be using it. tcLex 1.2a1 was released a loooong time ago, in 1999, possibly before the header was made private. tcLex needs to be patched to not use tclInt.h. Perhaps such a patch already exists somewhere on the Internet.

comment:2 Changed 12 years ago by cooljeanius (Eric Gallager)

ok, in the process of trying to cook up a patch, I copied tclInt.h from OS X's System Tcl's private-headers folder into the project, changed the <> quotes to "" quotes, and copied the rest of the private headers that tclInt.h needs, too, but then I ran into this error:

/usr/bin/clang  -fno-common -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_tcl/tcl/work/tcl8.6.0/generic -I/opt/local/include -DTCLEX_VERSION=\"1.2\"   -c -o tcLexRE.o tcLexRE.c
tcLexRE.c:11:10: fatal error: 'tclRegexp.h' file not found
#include <tclRegexp.h>
         ^
1 error generated.
make: *** [tcLexRE.o] Error 1

I don't see tclRegexp.h among Tcl's private-headers; where might it be?

comment:3 Changed 11 years ago by cooljeanius (Eric Gallager)

Also related is #17189

comment:4 Changed 13 months ago by cooljeanius (Eric Gallager)

I'm keeping my attempts to fix tcLex in the following GitHub repo: https://github.com/cooljeanius/tcLex

(not really sure if it's ready for submission as a Portfile update or not yet, though...)

comment:5 Changed 3 months ago by barracuda156

I am getting:

--->  Building tcLex
--->  Patching Makefile: s|-fno-common|-fno-common -framework Tcl|g
Executing:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_textproc_tcLex/tcLex/work/tcLex1.2a1/src" && /usr/bin/make -j6 -w all 
make: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_textproc_tcLex/tcLex/work/tcLex1.2a1/src'
/usr/bin/gcc-4.2  -fno-common -framework Tcl -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_tcl/tcl/work/tcl8.6.14/generic -I/opt/local/include -DTCLEX_VERSION=\"1.2\"   -c -o tcLex.o tcLex.c
/usr/bin/gcc-4.2  -fno-common -framework Tcl -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_tcl/tcl/work/tcl8.6.14/generic -I/opt/local/include -DTCLEX_VERSION=\"1.2\"   -c -o tcLexRE.o tcLexRE.c
(if test -f /opt/local/lib/tcLex1.2/pkgIndex.tcl; \
	    then grep -v 1.2 /opt/local/lib/tcLex1.2/pkgIndex.tcl; \
	else true; fi;) | \
	echo 'package ifneeded tcLex 1.2 [list load [file join $dir tcLex.dylib.1.2] tcLex]' > pkgIndex.tcl
tcLexRE.c:7:23: error: tclRegexp.h: No such file or directory
In file included from tcLexRE.c:19:
RE82.c: In function ‘getRegexp’:
RE82.c:18: error: ‘TclRegexp’ undeclared (first use in this function)
RE82.c:18: error: (Each undeclared identifier is reported only once
RE82.c:18: error: for each function it appears in.)
RE82.c:18: error: ‘regexpPtr’ undeclared (first use in this function)
RE82.c:18: error: expected expression before ‘)’ token
RE82.c:19: error: ‘REG_ADVANCED’ undeclared (first use in this function)
RE82.c:19: error: ‘REG_BOSONLY’ undeclared (first use in this function)
RE82.c:19: error: ‘REG_EXPECT’ undeclared (first use in this function)
RE82.c:20: error: ‘REG_NEWLINE’ undeclared (first use in this function)
RE82.c:21: error: ‘REG_ICASE’ undeclared (first use in this function)
RE82.c:47: warning: assignment discards qualifiers from pointer target type
RE82.c: In function ‘RuleExec’:
RE82.c:71: error: ‘TclRegexp’ undeclared (first use in this function)
RE82.c:71: error: ‘regexpPtr’ undeclared (first use in this function)
RE82.c:71: error: expected expression before ‘)’ token
RE82.c:79: error: ‘REG_NLANCH’ undeclared (first use in this function)
RE82.c:81: error: ‘REG_NOTBOL’ undeclared (first use in this function)
RE82.c: In function ‘RuleGetRange’:
RE82.c:129: error: ‘TclRegexp’ undeclared (first use in this function)
RE82.c:129: error: ‘regexpPtr’ undeclared (first use in this function)
RE82.c:129: error: expected expression before ‘)’ token
make: *** [tcLexRE.o] Error 1
make: *** Waiting for unfinished jobs....
tcLex.c: In function ‘LexerNew’:
tcLex.c:735: warning: initialization discards qualifiers from pointer target type
tcLex.c: In function ‘LexerCreateObjCmd’:
tcLex.c:1276: warning: passing argument 7 of ‘Tcl_GetIndexFromObjStruct’ from incompatible pointer type
tcLex.c: In function ‘LexerMainObjCmd’:
tcLex.c:1474: warning: passing argument 7 of ‘Tcl_GetIndexFromObjStruct’ from incompatible pointer type
tcLex.c: In function ‘LexerEvalObjCmd’:
tcLex.c:2111: warning: assignment from incompatible pointer type
tcLex.c:2297: warning: assignment from incompatible pointer type
tcLex.c: In function ‘LexerConditionsObjCmd’:
tcLex.c:2567: warning: passing argument 7 of ‘Tcl_GetIndexFromObjStruct’ from incompatible pointer type
tcLex.c: In function ‘LexerObjCmd’:
tcLex.c:2940: warning: passing argument 7 of ‘Tcl_GetIndexFromObjStruct’ from incompatible pointer type
powerpc-apple-darwin10-gcc-4.2.1: -framework: linker input file unused because linking not done
powerpc-apple-darwin10-gcc-4.2.1: Tcl: linker input file unused because linking not done
make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_textproc_tcLex/tcLex/work/tcLex1.2a1/src'
Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_textproc_tcLex/tcLex/work/tcLex1.2a1/src" && /usr/bin/make -j6 -w all 
Exit code: 2
Error: Failed to build tcLex: command execution failed
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_textproc_tcLex/tcLex/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets if you believe there
is a bug.
Error: Processing of port tcLex failed
Note: See TracTickets for help on using tickets.