error in tkGlue.c when building Tk

M

mariakvelasco

Hello all,

We are trying to install Tk-804.027_501 on Solaris 10 using Perl
version 5.8.4. We were able to create the makefile through the command
perl Makefile.PL; however, when running make, we are getting errors
regarding the file tkGlue.c

tkGlue.c: In function `do_comp':
tkGlue.c:5250: warning: passing arg 1 of `Perl_pregcomp' from
incompatible pointer type
tkGlue.c:5250: warning: passing arg 2 of `Perl_pregcomp' makes pointer
from integer without a cast
tkGlue.c:5250: too few arguments to function `Perl_pregcomp'
tkGlue.c: In function `Tcl_GetRegExpFromObj':
tkGlue.c:5319: `RXf_UTF8' undeclared (first use in this function)
tkGlue.c:5319: (Each undeclared identifier is reported only once
tkGlue.c:5319: for each function it appears in.)
tkGlue.c:5319: `RXf_PMf_FOLD' undeclared (first use in this function)
*** Error code 1
make: Fatal error: Command failed for target `tkGlue.o'

Is there anyone on here that is familiar with these errors or does
anyone have any suggestions on how to get rid of these errors. We
would really appreciate your help.

Thanks!
 
B

Ben Morrow

Quoth (e-mail address removed):
We are trying to install Tk-804.027_501 on Solaris 10 using Perl
version 5.8.4. We were able to create the makefile through the command
perl Makefile.PL; however, when running make, we are getting errors
regarding the file tkGlue.c

tkGlue.c: In function `do_comp':
tkGlue.c:5250: warning: passing arg 1 of `Perl_pregcomp' from
incompatible pointer type
tkGlue.c:5250: warning: passing arg 2 of `Perl_pregcomp' makes pointer
from integer without a cast
tkGlue.c:5250: too few arguments to function `Perl_pregcomp'

This is typically the result of an ithreads/no-ithreads mismatch. Do you
have some other version of perl whose headers are being picked up by
accident? Is your perl built for threads (or rather, for multiplicity;
check with perl -V:useithreads -V:usemultiplicity).
tkGlue.c: In function `Tcl_GetRegExpFromObj':
tkGlue.c:5319: `RXf_UTF8' undeclared (first use in this function)
tkGlue.c:5319: (Each undeclared identifier is reported only once
tkGlue.c:5319: for each function it appears in.)
tkGlue.c:5319: `RXf_PMf_FOLD' undeclared (first use in this function)

RXf_* are new in bleadperl, they aren't present in any version of 5.8.
Do you have 5.9.* or perl-current installed anywhere? Does your
pTk/tkConfig.h contain the line

#define HAS_PMOP_EXTRA_FLAGS 1

? What happens if you run

perl -I. -MConfig -MTk::MMtry -e'
$Tk::MMtry::VERBOSE = 1;
try_compile("config/pmop.c", ["-I$Config{archlibexp}/CORE"])
or die "try_compile failed: $?";'

(all on one line, of course)? What does perl -V:archlibexp print? Is
that correct (it should be the path to your arch-specific perl core lib
directory, something like /usr/lib/perl5/5.8.4/sun4-solaris)?

Ben
 
M

mariakvelasco

Quoth (e-mail address removed):


We are trying to install Tk-804.027_501 on Solaris 10 using Perl
version 5.8.4. We were able to create the makefile through the command
perl Makefile.PL; however, when running make, we are getting errors
regarding the file tkGlue.c
tkGlue.c: In function `do_comp':
tkGlue.c:5250: warning: passing arg 1 of `Perl_pregcomp' from
incompatible pointer type
tkGlue.c:5250: warning: passing arg 2 of `Perl_pregcomp' makes pointer
from integer without a cast
tkGlue.c:5250: too few arguments to function `Perl_pregcomp'

This is typically the result of an ithreads/no-ithreads mismatch. Do you
have some other version of perl whose headers are being picked up by
accident? Is your perl built for threads (or rather, for multiplicity;
check with perl -V:useithreads -V:usemultiplicity).
tkGlue.c: In function `Tcl_GetRegExpFromObj':
tkGlue.c:5319: `RXf_UTF8' undeclared (first use in this function)
tkGlue.c:5319: (Each undeclared identifier is reported only once
tkGlue.c:5319: for each function it appears in.)
tkGlue.c:5319: `RXf_PMf_FOLD' undeclared (first use in this function)

RXf_* are new in bleadperl, they aren't present in any version of 5.8.
Do you have 5.9.* or perl-current installed anywhere? Does your
pTk/tkConfig.h contain the line

#define HAS_PMOP_EXTRA_FLAGS 1

? What happens if you run

perl -I. -MConfig -MTk::MMtry -e'
$Tk::MMtry::VERBOSE = 1;
try_compile("config/pmop.c", ["-I$Config{archlibexp}/CORE"])
or die "try_compile failed: $?";'

(all on one line, of course)? What does perl -V:archlibexp print? Is
that correct (it should be the path to your arch-specific perl core lib
directory, something like /usr/lib/perl5/5.8.4/sun4-solaris)?

Ben

Hello,

Here are our results:

1.) After typing the command perl -V:useithreads -V:usemultiplicity
 
M

mariakvelasco

Quoth (e-mail address removed):
This is typically the result of an ithreads/no-ithreads mismatch. Do you
have some other version of perl whose headers are being picked up by
accident? Is your perl built for threads (or rather, for multiplicity;
check with perl -V:useithreads -V:usemultiplicity).
RXf_* are new in bleadperl, they aren't present in any version of 5.8.
Do you have 5.9.* or perl-current installed anywhere? Does your
pTk/tkConfig.h contain the line
#define HAS_PMOP_EXTRA_FLAGS 1
? What happens if you run
perl -I. -MConfig -MTk::MMtry -e'
$Tk::MMtry::VERBOSE = 1;
try_compile("config/pmop.c", ["-I$Config{archlibexp}/CORE"])
or die "try_compile failed: $?";'
(all on one line, of course)? What does perl -V:archlibexp print? Is
that correct (it should be the path to your arch-specific perl core lib
directory, something like /usr/lib/perl5/5.8.4/sun4-solaris)?

Hello,

Here are our results:

1.) After typing the command perl -V:useithreads -V:usemultiplicity- Hide quoted text -

- Show quoted text -

Sorry about the previous post.

Let me continue...
1.) After typing the command perl -V:useithreads -V:usemultiplicity

root % perl -V:useithreads -V:usemultiplicity
useithreads='undef';
usemultiplicity='undef';

Does this mean the perl was built for neither threads or multiplicity?

2.) It looks as if we have the following versions of Perl installed:
5.6.1, 5.8.3, 5.8.4, but not 5.9.*

3.) The file pTk/tkConfig.h does not contain the line #define
HAS_PMOP_EXTRA_FLAGS 1

4.) After running the following

usir-solaris:root % perl -I. -MConfig -MTk::MMtry -e'
$Tk::MMtry::VERBOSE = 1; try_compile("config/pmop.c", ["-I
$Config{archlibexp}/CORE"]) or die "try_compile failed: $?";'

This is the result we get:

Can't locate Tk/MMtry.pm in @INC (@INC contains: . /usr/perl5/5.8.4/
lib/sun4-solaris-64int /usr/perl5/5.8.4/lib /usr/perl5/site_perl/5.8.4/
sun4-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl/
5.8.4/sun4-solaris-64int /usr/perl5/5.8.4/lib/sun4-solaris-64int /usr/
perl5/5.8.4/lib /usr/perl5/site_perl/5.8.4/sun4-solaris-64int /usr/
perl5/site_perl/5.8.4 /usr/perl5/site_perl /usr/perl5/vendor_perl/
5.8.4/sun4-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/
vendor_perl .).

BEGIN failed--compilation aborted.

5.) After running the command perl -V:archlibexp we get the following:

root % perl -V:archlibexp
archlibexp='/usr/perl5/5.8.4/lib/sun4-solaris-64int';

Can anyone see the cause of our problem from the information
provided? Thanks so much for the help.

Note: Ben, I think I emailed you with the same information I wrote
above.

Thanks again!
 
B

Ben Morrow

[quoting re-arranged somewhat for clarity]

Quoth (e-mail address removed):
1.) After typing the command perl -V:useithreads -V:usemultiplicity

root % perl -V:useithreads -V:usemultiplicity
useithreads='undef';
usemultiplicity='undef';

Does this mean the perl was built for neither threads or multiplicity?

Yup. Looking further at tkGlue.c suggests that this is not a
multiplicity problem, but the same as the problem below: Tk's configure
process thinks, for some reason, that you are running some version of
perl 5.9. As with the regex flags, the prototype of Perl_pregcomp has
changed in bleadperl: it now only takes two arguments, as opposed to the
three it took in 5.8.x.
tkGlue.c: In function `Tcl_GetRegExpFromObj':
tkGlue.c:5319: `RXf_UTF8' undeclared (first use in this function)
tkGlue.c:5319: (Each undeclared identifier is reported only once
tkGlue.c:5319: for each function it appears in.)
tkGlue.c:5319: `RXf_PMf_FOLD' undeclared (first use in this function)
RXf_* are new in bleadperl, they aren't present in any version of 5.8.
Do you have 5.9.* or perl-current installed anywhere? Does your
pTk/tkConfig.h contain the line
#define HAS_PMOP_EXTRA_FLAGS 1
? What happens if you run
perl -I. -MConfig -MTk::MMtry -e'
$Tk::MMtry::VERBOSE = 1;
try_compile("config/pmop.c", ["-I$Config{archlibexp}/CORE"])
or die "try_compile failed: $?";'
(all on one line, of course)? What does perl -V:archlibexp print? Is
that correct (it should be the path to your arch-specific perl core lib
directory, something like /usr/lib/perl5/5.8.4/sun4-solaris)?

2.) It looks as if we have the following versions of Perl installed:
5.6.1, 5.8.3, 5.8.4, but not 5.9.*

3.) The file pTk/tkConfig.h does not contain the line #define
HAS_PMOP_EXTRA_FLAGS 1

Ok... that's weird. tkGlue.c doesn't attempt to use RXf_* unless
HAS_PMOP_EXTRA_FLAGS is defined. Are you able to find out where tkGlue.c
is including pTk/tkConfig.h from? With some compilers if you run the
file through the preprocessor (with all the correct arguments, of
course) it includes #line markers with the full path of the include
file. Maybe there's another copy somewhere it's finding by mistake...
I'm somewhat grasping at straws here.
4.) After running the following

usir-solaris:root % perl -I. -MConfig -MTk::MMtry -e'
$Tk::MMtry::VERBOSE = 1; try_compile("config/pmop.c", ["-I
$Config{archlibexp}/CORE"]) or die "try_compile failed: $?";'

This is the result we get:

Can't locate Tk/MMtry.pm in @INC (@INC contains: . /usr/perl5/5.8.4/

Sorry, I was unclear: I meant you to run that from in the Tk build
directory. Tk::MMtry is included in the Tk distribution. Since
tkConfig.h *didn't* define HAS_PMOP_EXTRA_FLAGS I'd expect it to fail.
lib/sun4-solaris-64int /usr/perl5/5.8.4/lib /usr/perl5/site_perl/5.8.4/
sun4-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl/
5.8.4/sun4-solaris-64int /usr/perl5/5.8.4/lib/sun4-solaris-64int /usr/
perl5/5.8.4/lib /usr/perl5/site_perl/5.8.4/sun4-solaris-64int /usr/
perl5/site_perl/5.8.4 /usr/perl5/site_perl /usr/perl5/vendor_perl/
5.8.4/sun4-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/
vendor_perl .).

Again, rather grasping at things here, but there isn't anything weird in
/usr/perl5/{site,vendor}_perl is there? Like a previous installation of
Tk? :)
BEGIN failed--compilation aborted.

5.) After running the command perl -V:archlibexp we get the following:

root % perl -V:archlibexp
archlibexp='/usr/perl5/5.8.4/lib/sun4-solaris-64int';

That looks correct.
Can anyone see the cause of our problem from the information
provided? Thanks so much for the help.

No, sorry, I can't see any good reason why this is going wrong. At this
point I would recommend starting again with a fresh copy of the Tk
distribution, having made *really* sure you haven't got anything odd set
in your environment (PERL5LIB, PERL_MM_OPT, anything that might affect
where your preprocessor searches for include files), and if that fails
report a bug at rt.cpan.org.

Ben
 
M

mariakvelasco

[quoting re-arranged somewhat for clarity]

Quoth (e-mail address removed):




1.) After typing the command perl -V:useithreads -V:usemultiplicity
root % perl -V:useithreads -V:usemultiplicity
useithreads='undef';
usemultiplicity='undef';
Does this mean the perl was built for neither threads or multiplicity?

Yup. Looking further at tkGlue.c suggests that this is not a
multiplicity problem, but the same as the problem below: Tk's configure
process thinks, for some reason, that you are running some version of
perl 5.9. As with the regex flags, the prototype of Perl_pregcomp has
changed in bleadperl: it now only takes two arguments, as opposed to the
three it took in 5.8.x.




tkGlue.c: In function `Tcl_GetRegExpFromObj':
tkGlue.c:5319: `RXf_UTF8' undeclared (first use in this function)
tkGlue.c:5319: (Each undeclared identifier is reported only once
tkGlue.c:5319: for each function it appears in.)
tkGlue.c:5319: `RXf_PMf_FOLD' undeclared (first use in this function)
RXf_* are new in bleadperl, they aren't present in any version of 5.8.
Do you have 5.9.* or perl-current installed anywhere? Does your
pTk/tkConfig.h contain the line
#define HAS_PMOP_EXTRA_FLAGS 1
? What happens if you run
perl -I. -MConfig -MTk::MMtry -e'
$Tk::MMtry::VERBOSE = 1;
try_compile("config/pmop.c", ["-I$Config{archlibexp}/CORE"])
or die "try_compile failed: $?";'
(all on one line, of course)? What does perl -V:archlibexp print? Is
that correct (it should be the path to your arch-specific perl core lib
directory, something like /usr/lib/perl5/5.8.4/sun4-solaris)?
2.) It looks as if we have the following versions of Perl installed:
5.6.1, 5.8.3, 5.8.4, but not 5.9.*
3.) The file pTk/tkConfig.h does not contain the line #define
HAS_PMOP_EXTRA_FLAGS 1

Ok... that's weird. tkGlue.c doesn't attempt to use RXf_* unless
HAS_PMOP_EXTRA_FLAGS is defined. Are you able to find out where tkGlue.c
is including pTk/tkConfig.h from? With some compilers if you run the
file through the preprocessor (with all the correct arguments, of
course) it includes #line markers with the full path of the include
file. Maybe there's another copy somewhere it's finding by mistake...
I'm somewhat grasping at straws here.
4.) After running the following
usir-solaris:root % perl -I. -MConfig -MTk::MMtry -e'
$Tk::MMtry::VERBOSE = 1; try_compile("config/pmop.c", ["-I
$Config{archlibexp}/CORE"]) or die "try_compile failed: $?";'
This is the result we get:
Can't locate Tk/MMtry.pm in @INC (@INC contains: . /usr/perl5/5.8.4/

Sorry, I was unclear: I meant you to run that from in the Tk build
directory. Tk::MMtry is included in the Tk distribution. Since
tkConfig.h *didn't* define HAS_PMOP_EXTRA_FLAGS I'd expect it to fail.
lib/sun4-solaris-64int /usr/perl5/5.8.4/lib /usr/perl5/site_perl/5.8.4/
sun4-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl/
5.8.4/sun4-solaris-64int /usr/perl5/5.8.4/lib/sun4-solaris-64int /usr/
perl5/5.8.4/lib /usr/perl5/site_perl/5.8.4/sun4-solaris-64int /usr/
perl5/site_perl/5.8.4 /usr/perl5/site_perl /usr/perl5/vendor_perl/
5.8.4/sun4-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/
vendor_perl .).

Again, rather grasping at things here, but there isn't anything weird in
/usr/perl5/{site,vendor}_perl is there? Like a previous installation of
Tk? :)
BEGIN failed--compilation aborted.
5.) After running the command perl -V:archlibexp we get the following:
root % perl -V:archlibexp
archlibexp='/usr/perl5/5.8.4/lib/sun4-solaris-64int';

That looks correct.
Can anyone see the cause of our problem from the information
provided? Thanks so much for the help.

No, sorry, I can't see any good reason why this is going wrong. At this
point I would recommend starting again with a fresh copy of the Tk
distribution, having made *really* sure you haven't got anything odd set
in your environment (PERL5LIB, PERL_MM_OPT, anything that might affect
where your preprocessor searches for include files), and if that fails
report a bug at rt.cpan.org.

Ben- Hide quoted text -

- Show quoted text -- Hide quoted text -

- Show quoted text -

Hi Ben,

Thanks for the help you provided. We decided to delete the old Tk
directory and start fresh, so after deleting Tk, we re-installed
Tk-804.027 and we were able to succeed with installation.

We believe that Tk-804.027_501 may not be compatible with Solaris 10
due to all the issues we were getting.

Thanks again so much for all your help.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,982
Messages
2,570,190
Members
46,736
Latest member
zacharyharris

Latest Threads

Top