I have a slightly modified version of the example in perlembed.
compiling with gcc works on both Linux/Intel and Linux/390. compiling
with g++ works on Linux/Intel but segfaults on Linux/390.
the code:

#define PERL_NO_GET_CONTEXT
#include <EXTERN.h>               /* from the Perl distribution     */
#include <perl.h>                 /* from the Perl distribution     */
#include <stdio.h>
static PerlInterpreter *my_perl;  /***    The Perl interpreter    ***/






int main(int argc, char **argv, char **env)
{
        my_perl = perl_alloc();
        perl_construct(my_perl);
        PL_exit_flags |= PERL_EXIT_DESTRUCT_END;
        perl_parse(my_perl, NULL, argc, argv, (char **)NULL);
        perl_run(my_perl);
        if (SvTRUE(ERRSV)) {
                printf("SvTRUE(ERRSV) is true\n");
        } else {
                printf("SvTRUE(ERRSV) is false\n");
        }
        perl_destruct(my_perl);
        perl_free(my_perl);
}

the behaviour on linux/390 when compiled with g++:
$./interp -e'print "Hello World\n";'
Hello World
Segmentation fault
$

The seg fault is on the
        if (SvTRUE(ERRSV)) {
line.

Can anyone see what I'm doing wrong / whats happening?
Thanks,
Greg

Reply via email to