Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

h2ph unable to parse macros which have variable initialization #7844

Open
p5pRT opened this issue Mar 19, 2005 · 3 comments
Open

h2ph unable to parse macros which have variable initialization #7844

p5pRT opened this issue Mar 19, 2005 · 3 comments

Comments

@p5pRT
Copy link

p5pRT commented Mar 19, 2005

Migrated from rt.perl.org#34497 (status was 'open')

Searchable as RT34497$

@p5pRT
Copy link
Author

p5pRT commented Mar 19, 2005

From at@altlinux.ru

Created by at@solemn.turbinal.org

I know that h2ph hardly ever will become perfect, but I am to report that
h2ph cannot produce acceptable output for the following construct (found
in Linux kernel headers)​:

$ cat scx200_gpio.h
#define __SCx200_GPIO_BANK unsigned bank = index>>5
$ h2ph -d . scx200_gpio.h
scx200_gpio.h -> scx200_gpio.ph
$ perl -c scx200_gpio.ph
Can't modify constant item in scalar assignment at scx200_gpio.ph line 6, near "5;"
scx200_gpio.ph had compilation errors.
$ cat scx200_gpio.ph
require '_h2ph_pre.ph';

no warnings 'redefine';

unless(defined(&__SCx200_GPIO_BANK)) {
  sub __SCx200_GPIO_BANK () { 'unsigned bank' = &index>>5;}
}
1;
$

Perl Info

Flags:
    category=utilities
    severity=low

Site configuration information for perl v5.8.6:

Configured by ALT Linux Team at Fri Mar 11 15:59:16 MSK 2005.

Summary of my perl5 (revision 5 version 8 subversion 6) configuration:
  Platform:
    osname=linux, osvers=2.4.20-alt7-up, archname=i386-linux-thread-multi
    uname='linux solemn.turbinal.org 2.4.20-alt7-up #1 fri mar 14 14:57:05 msk 2003 i686 unknown unknown gnulinux '
    config_args='-de -rs -Darchname=i386-linux -Dd_dosuid -Ud_csh -Dlibswanted=dl m c crypt db ndbm gdbm -Duseshrplib -Dlibperl=libperl.so.5.8 -Dcc=gcc -Doptimize=-pipe -Wall -Os -march=i686 -D_GNU_SOURCE -momit-leaf-frame-pointer -Dcccdlflags=-fPIC -DPIC -Dccdlflags=-rdynamic -Wl,-O1 -Dlddlflags=-shared -Wl,-O1 -Dldflags=-Wl,-O1 -Dprefix=/usr -Dprivlib=/usr/lib/perl5 -Darchlib=/usr/lib/perl5/i386-linux -Dvendorprefix=/usr -Dvendorlib=/usr/lib/perl5/vendor_perl -Dvendorarch=/usr/lib/perl5/vendor_perl/i386-linux -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 -Dvendorman1dir=/usr/share/man/man1 -Dvendorman3dir=/usr/share/man/man3 -Dsiteprefix=/usr/local -Dsitelib=/usr/local/lib/perl5/site_perl/5.8.6 -Dsitearch=/usr/local/lib/perl5/site_perl/5.8.6/i386-linux -Dsiteman1dir=/usr/local/man/man1 -Dsite_man3dir=/usr/local/man/man3 -Dcf_by=ALT Linux Team -Dcf_email=qa@altlinux.org -Dmyhostname=localhost -Dperladmin=root@localhost -Dmyuname=Linux 2.4.20-alt7-up i686 -Dnewmyuname=Linux 2.4.20-alt7-up i686 -Dinc_version_list=5.8.5/i386-linux 5.8.4/i386-linux 5.8.3/i386-linux 5.8.2/i386-linux 5.8.1/i386-linux 5.8.0/i386-linux 5.8.5 5.8.4 5.8.3 5.8.2 5.8.1 5.8.0 5.6.1 5.6.0 -Dpager=/usr/bin/less -isR -Di_shadow -Di_syslog -Dusethreads -Duseithreads -Duselargefiles -Di_db -Di_gdbm -Di_ndbm -Di_sdbm -Ui_odbm'
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=define use5005threads=undef useithreads=define usemultiplicity=define
    useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=undef use64bitall=undef uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm',
    optimize='-pipe -Wall -Os -march=i686 -D_GNU_SOURCE -momit-leaf-frame-pointer',
    cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -fno-strict-aliasing -pipe -I/usr/local/include -I/usr/include/gdbm'
    ccversion='', gccversion='3.3.3 20040412 (ALT Linux, build 3.3.3-alt5)', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=4, prototype=define
  Linker and Libraries:
    ld='gcc', ldflags ='-Wl,-O1 -L/usr/local/lib64 -L/usr/local/lib'
    libpth=/usr/local/lib64 /usr/local/lib /lib64 /usr/lib64 /lib /usr/lib
    libs=-ldl -lm -lpthread -lc -lcrypt -ldb -lgdbm
    perllibs=-ldl -lm -lpthread -lc -lcrypt
    libc=/lib/libc-2.3.3.so, so=so, useshrplib=true, libperl=libperl.so.5.8
    gnulibc_version='2.3.3'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic -Wl,-O1'
    cccdlflags='-fPIC -DPIC', lddlflags='-shared -Wl,-O1 -L/usr/local/lib64 -L/usr/local/lib'

Locally applied patches:
    


@INC for perl v5.8.6:
    /etc/perl5
    /usr/lib/perl5/i386-linux
    /usr/lib/perl5
    /usr/local/lib/perl5/site_perl/5.8.6/i386-linux
    /usr/local/lib/perl5/site_perl/5.8.6
    /usr/local/lib/perl5/site_perl/5.8.4/i386-linux
    /usr/local/lib/perl5/site_perl/5.8.2/i386-linux
    /usr/local/lib/perl5/site_perl/5.8.1/i386-linux
    /usr/local/lib/perl5/site_perl/5.8.4
    /usr/local/lib/perl5/site_perl/5.8.2
    /usr/local/lib/perl5/site_perl/5.8.1
    /usr/local/lib/perl5/site_perl/5.6.1
    /usr/local/lib/perl5/site_perl
    /usr/lib/perl5/vendor_perl/i386-linux
    /usr/lib/perl5/vendor_perl
    /usr/lib/perl5/vendor_perl
    .


Environment for perl v5.8.6:
    HOME=/home/at
    LANG=C
    LANGUAGE (unset)
    LC_COLLATE=ru_RU.CP1251
    LC_CTYPE=ru_RU.CP1251
    LC_MESSAGES=C
    LC_MONETARY=ru_RU.CP1251
    LC_NUMERIC=ru_RU.CP1251
    LC_TIME=C
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=/home/at/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/games:/sbin:/usr/sbin:/usr/local/sbin:/usr/lib/qt3/bin
    PERL_BADLANG (unset)
    SHELL=/bin/zsh

@p5pRT
Copy link
Author

p5pRT commented Dec 29, 2011

From @jkeenan

On Sat Mar 19 09​:59​:21 2005, at@​altlinux.ru wrote​:

This is a bug report for perl from at@​solemn.turbinal.org,
generated with the help of perlbug 1.35 running under perl v5.8.6.

I know that h2ph hardly ever will become perfect, but I am to report
that
h2ph cannot produce acceptable output for the following construct
(found
in Linux kernel headers)​:

$ cat scx200_gpio.h
#define __SCx200_GPIO_BANK unsigned bank = index>>5
$ h2ph -d . scx200_gpio.h
scx200_gpio.h -> scx200_gpio.ph
$ perl -c scx200_gpio.ph
Can't modify constant item in scalar assignment at scx200_gpio.ph line
6, near "5;"
scx200_gpio.ph had compilation errors.
$ cat scx200_gpio.ph
require '_h2ph_pre.ph';

no warnings 'redefine';

unless(defined(&__SCx200_GPIO_BANK)) {
sub __SCx200_GPIO_BANK () { 'unsigned bank' = &index>>5;}
}
1;
$

Examining this tonight using Perl 5.14.2 on Darwin/PPC, I got slightly
different output from the original poster, but still got a Perl file
that will not compile​:

#####
$ h2ph -d . scx200_gpio.h
scx200_gpio.h -> scx200_gpio.ph

$ perl -c scx200_gpio.ph
Can't modify constant item in scalar assignment at scx200_gpio.ph line
6, near "5;"
scx200_gpio.ph had compilation errors.

$ cat scx200_gpio.ph
require '_h2ph_pre.ph';
#####

Any ideas?

Thank you very much.
Jim Keenan
no warnings qw(redefine misc);

unless(defined(&__SCx200_GPIO_BANK)) {
  sub __SCx200_GPIO_BANK () { 'unsigned bank' = &index>>5;}
}
1;

@p5pRT
Copy link
Author

p5pRT commented Dec 29, 2011

The RT System itself - Status changed from 'new' to 'open'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants