[logo] 
 
Home
News
Activity
About/Contact
Major Tools
  Dinotrace
  Verilator
  Verilog-mode
  Verilog-Perl
Other Tools
  BugVise
  CovVise
  Force-Gate-Sim
  Gspice
  IPC::Locker
  Rsvn
  SVN::S4
  SystemPerl
  Voneline
  WFH
General Info
  Papers

Issue #115

compile failures on multiple OSes with perl-5.8.8

Added by Marek Rouchal almost 4 years ago. Updated over 3 years ago.

Status:Closed Start date:07/27/2009
Priority:High Due date:
Assignee:Wilson Snyder % Done:

0%

Category:-
Target version:-

Description

This bug was cloned from Perl-RT, rt48226.

Email addresses have have been truncated.

Id:   48226
Status:        open
Queue:         Verilog-Perl
Severity:    Critical
Broken in:     3.212
Requestors:    MAREKR <Marek.Rouchal@>

Created:    Mon Jul 27 04:06:25 2009
Last Contact:     Mon Sep 14 13:14:11 2009
Closed:     Tue Jul 28 08:41:02 2009
Updated:     Mon Sep 14 13:14:11 2009 by WSNYDER
Mon Jul 27 04:06:30 2009 MAREKR - Ticket created
Subject:  compile failures on multiple OSes with perl-5.8.8
With our perl-5.8.8 (no threads, shared libperl, built with gcc-4.1.2)
the latest version of Verilog-Perl (3.212) shows the following compile
problem:

g++ -c -fno-strict-aliasing -pipe -I/opt/perl_5.8.8/ext/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DPERL_USE_SAFE_PUTENV
-I../Preproc -O2 -march=pentium4 -DVERSION=\"3.212\" 
-DXS_VERSION=\"3.212\" -fPIC "-I/opt/perl_5.8.8/lib/CORE" Parser_cleaned.c
Parser.c: In function 'void boot_Verilog__Parser(CV*)':
Parser.c:711: error: invalid conversion from 'const char*' to 'char*'
Parser.c:711: error: initializing argument 3 of 'CV* Perl_newXS(char*,void (*)(CV*), char*)'
Parser.c:712: error: invalid conversion from 'const char*' to 'char*'
Parser.c:712: error: initializing argument 3 of 'CV* Perl_newXS(char*,void (*)(CV*), char*)'
Parser.c:713: error: invalid conversion from 'const char*' to 'char*'
Parser.c:713: error: initializing argument 3 of 'CV* Perl_newXS(char*,void (*)(CV*), char*)'
Parser.c:714: error: invalid conversion from 'const char*' to 'char*'
Parser.c:714: error: initializing argument 3 of 'CV* Perl_newXS(char*,void (*)(CV*), char*)'
Parser.c:715: error: invalid conversion from 'const char*' to 'char*'
Parser.c:715: error: initializing argument 3 of 'CV* Perl_newXS(char*,void (*)(CV*), char*)'
Parser.c:716: error: invalid conversion from 'const char*' to 'char*'
Parser.c:716: error: initializing argument 3 of 'CV* Perl_newXS(char*,void (*)(CV*), char*)'
Parser.c:717: error: invalid conversion from 'const char*' to 'char*'
Parser.c:717: error: initializing argument 3 of 'CV* Perl_newXS(char*,void (*)(CV*), char*)'
Parser.c:718: error: invalid conversion from 'const char*' to 'char*'
Parser.c:718: error: initializing argument 3 of 'CV* Perl_newXS(char*,void (*)(CV*), char*)'
Parser.c:719: error: invalid conversion from 'const char*' to 'char*'
Parser.c:719: error: initializing argument 3 of 'CV* Perl_newXS(char*,void (*)(CV*), char*)'
Parser.c:720: error: invalid conversion from 'const char*' to 'char*'
Parser.c:720: error: initializing argument 3 of 'CV* Perl_newXS(char*,void (*)(CV*), char*)'
Parser.c:721: error: invalid conversion from 'const char*' to 'char*'
Parser.c:721: error: initializing argument 3 of 'CV* Perl_newXS(char*,void (*)(CV*), char*)'
Parser.c:722: error: invalid conversion from 'const char*' to 'char*'
Parser.c:722: error: initializing argument 3 of 'CV* Perl_newXS(char*,void (*)(CV*), char*)'
gmake[4]: *** [Parser_cleaned.o] Error 1
gmake[4]: Leaving directory `/home/hwadm/.cpan/build/Verilog-Perl-3.212-pGo2U0/Parser'
gmake[3]: *** [subdirs] Error 2

The Perl installation is updated to all the latest versions from CPAN -
so it could be a side-effect of some ExtUtils::* or Devel::* updates - I
tried the previous 3.211 and that shows the same issue; here is what I
installed recently (i.e., after Verilog-Perl-3.211):

DBD::mysql 4.012
HTML::Parser 3.61
Mail::IMAPClient 3.19
Module::ScanDeps 0.91
base 2.14
Archive::Extract 0.34
Config::IniFiles 2.52
Locale-Maketext-Gettext 1.28
PadWalker 1.9
Safe 2.17
Time::Piece 1.15
CPAN 1.9402
File::Fetch 0.20
Archive::Zip 1.30
DateTime::Locale 0.43
File::Temp 0.22
Test::MinimumVersion 0.011
Template-Plugin-Autoformat 2.71
Data::Section 0.091820
Devel::FindRef 1.42
CPANPLUS::Dist::Build 0.36
IO::Socket::SSL 1.26
Proc::Background 1.10
Test::Simple 0.92
autodie 2.06
Term::ANSIColor 2.01
CPANPLUS 0.88
ExtUtils::MakeMaker 6.54
Locale::Maketext::Simple 0.20
LWP 5.829
GD 2.44
Log::Log4perl 1.24
Module::CPANTS::Analyse 0.85
RPC::XML 0.67
DateTime::Format::Strptime 1.1000
Encode 2.35
IPC::Run 0.84
Test::ClassAPI 1.06
Test::Pod 1.40
WWW::Mechanize 1.58
Devel::StackTrace 1.22
Config::General 2.43
ExtUtils::CBuilder 0.2603
ExtUtils::ParseXS 2.2002
File::Find::Rule::Perl 1.08
IO::Zlib 1.10
PAR 0.993
Perl::Critic 1.100
Pod::Simple 3.08
Test::Inline 2.211
Test::Manifest 1.23
Text::Diff 1.37
SystemC::Netlist 1.330
DateTime::TimeZone 0.93
HTTP::Proxy 0.24
prefork 1.04
Template 2.22

I suppose it is probably the ExtUtils::CBuilder and/or ExtUtils::ParseXS
which cause the issues. Please feel free to reassign this ticket if the
root cause is there.

Many thanks and keep up the good work,

Marek
Mon Jul 27 07:52:36 2009 WSNYDER - Correspondence added
Grrr, the Perl_newXS prototype is missing a const, but it's too late to
change the perl internals, so please try the below patch. You'll need
to "make clean" then start from scratch.

BTW if you have additional bugs, please use
http://www.veripool.org/projects/verilog-perl/issues

diff --git a/Preproc/xsubppfix b/Preproc/xsubppfix
index be13899..e13063f 100755
--- a/Preproc/xsubppfix
+++ b/Preproc/xsubppfix
@@ -13,6 +13,7 @@ foreach my $line (<STDIN>) {
# "warning: deprecated conversion from string constant to âchar*â" 
$line =~ s/^ *char\* file = __FILE__;/char* file = (char*)__FILE__;/;
$line =~ s/newXSproto\(\"/newXSproto((char*)\"/;
+ $line =~ s/(newXSproto.*), *\"/$1, (char*)\"/;
#
print "$line";
}

Mon Jul 27 07:52:37 2009 RT_System - Status changed from 'new' to 'open'

Tue Jul 28 07:54:29 2009 MAREKR - Correspondence added
Thank you for the patch - I had to edit it a bit, and with the script
below the build and all tests pass OK.
Cheers,
Marek

#!/usr/bin/perl -w
#
# Copyright 2008-2009 by Wilson Snyder. This program is free software;
# you can redistribute it and/or modify it under the terms of either the GNU
# Lesser General Public License Version 3 or the Perl Artistic License
Version 2.0.
#
######################################################################

# DESCRIPTION: Edits xsubpp output to get around various issues.

foreach my $line (<STDIN>) {
# Fix xsubpp 1.9508 and GCC 4.2.1 warning
# "warning: deprecated conversion from string constant to
â<80><98>char*â<80><99>" 
$line =~
s/^(\s*)(?:const\s*|)char\*\s*file\s*=\s*__FILE__;/${1}char* file =
(char*)__FILE__;/;
if($line =~ /newXSproto/) {
$line =~ s/([(,]\s*)"/$1(char*)"/g;
}
#
print "$line";
}
Tue Jul 28 08:41:00 2009 WSNYDER - Correspondence added
Thanks for your work on the fix.

I've committed this to git, and it will be in the next release; 3.213.
If you need it on CPAN immediately let me know.

Tue Jul 28 08:41:02 2009 WSNYDER - Status changed from 'open' to 'resolved'

Mon Sep 14 13:14:09 2009 WSNYDER - Correspondence added
The git version missed one line of the new patch, sorry about that.

Please download it from git and insure it's ok for the next release, thanks.

Mon Sep 14 13:14:10 2009 RT_System - Status changed from 'resolved' to 'open'

History

Updated by Wilson Snyder over 3 years ago

  • Status changed from Resolved to Closed

Fixed in 3.220

Also available in: Atom