Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Mac OS X Build Errors (0.4.0)

1 view
Skip to first unread message

Brent Fulgham

unread,
Dec 8, 2005, 12:57:43 AM12/8/05
to perl6-i...@perl.org
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

In addition to the shootout machine, I have a main development box
that runs Mac OS X (PowerPC). I attempted to build Parrot 0.4.0 on
this machine and encountered errors. The mailing list archive seems
to be down at the moment, so I could not check for others with this
issue. Is this a known problem? I am using the XCode tools 2.2,
which means basically a gcc 4.0 compiler.

Thanks,

- -Brent

Error Log:
src/inter_call.c: At top level:
src/inter_call.c:637: error: conflicting types for 'parrot_pass_args'
/opt/local/include/parrot/inter_call.h:78: error: previous
declaration of 'parrot_pass_args' was here
src/inter_call.c: In function 'parrot_pass_args':
src/inter_call.c:678: error: 'PARROT_ERRORS_RESULT_COUNT_FLAG'
undeclared (first use in this function)
src/inter_call.c:678: error: (Each undeclared identifier is reported
only once
src/inter_call.c:678: error: for each function it appears in.)
src/inter_call.c:681: error: 'PARROT_ERRORS_PARAM_COUNT_FLAG'
undeclared (first use in this function)
src/inter_call.c: At top level:
src/inter_call.c:788: error: conflicting types for 'set_retval'
/opt/local/include/parrot/inter_call.h:84: error: previous
declaration of 'set_retval' was here
src/inter_call.c:822: error: conflicting types for 'set_retval_i'
/opt/local/include/parrot/inter_call.h:86: error: previous
declaration of 'set_retval_i' was here
src/inter_call.c:850: error: conflicting types for 'set_retval_f'
/opt/local/include/parrot/inter_call.h:82: error: previous
declaration of 'set_retval_f' was here
make: *** [src/inter_call.o] Error 1

Configuration:
Checking
MANIFEST.....................................................done.
Setting up Configure's default
values.................................done.
Tweaking settings for
miniparrot......................................done.
Loading platform and local hints
files................................done.
Determining nongenerated header
files.................................done.
Determining what C compiler and linker to
use.........................done.
Determining whether make is
installed..................................yes.
Determining whether lex is
installed...............................skipped.
Determining whether yacc is
installed..............................skipped.
Determining if your C compiler is actually
gcc.........................yes.
Enabling
optimization.................................................done.
Determining flags for building shared
libraries.......................done.
Determining what charset files should be compiled
in..................done.
Determining what encoding files should be compiled
in.................done.
Determining what types Parrot should
use..............................done.
Determining what opcode files should be compiled
in...................done.
Setting up experimental
systems.......................................done.
Determining what pmc files should be compiled
in......................done.
Determining your minimum pointer alignment......................... 1
byte.
Probing for C
headers.................................................done.
Determining some
sizes................................................done.
Computing native byteorder for Parrot's wordsize................big-
endian.
Test the type of va_ptr (this test is likely to
segfault)..............x86.
Figuring out how to pack() Parrot's
types.............................done.
Figuring out what formats should be used for
sprintf..................done.
Determining if your C library has a working
S_ISREG....................yes.
Determining architecture, OS and JIT
capability.......................done.
Running CPU specific
stuff............................................done.
Verifying that the compiler supports function pointer
casts............yes.
Determining whether your compiler supports computed
goto...............yes.
Determining if your compiler supports
inline...........................yes.
Determining what allocator to
use.....................................done.
Determining if your C library supports
memalign.......................done.
Determining some signal
stuff.........................................done.
Determining if your C library has setenv /
unsetenv...................both.
Determining if your platform supports
AIO...............................no.
Determining if your platform supports
GMP..............................yes.
Determining if your platform supports
gdbm.............................yes.
Testing
snprintf .....................................................done.
Determining whether perldoc is
installed...............................yes.
Determining whether python is installed.........................yes,
2.4.1.
Determining whether antlr is
installed..................................no.
Determining whether GNU bc is
installed.................................no.
Determining whether GNU m4 is
installed................................yes.
Determining whether ICU is
installed...................................yes.
Determining Parrot's
revision.........................................done.
Generating C
headers..................................................done.
Generating core pmc
list..............................................done.
Generating runtime/parrot/
include.....................................done.
Generating build
files................................................done.
Moving platform files into
place......................................done.
Recording configuration data for later
retrieval......................done.

Compiler:
Chaz:~/foo/parrot-0.4.0 brent$ gcc --version
powerpc-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc.
build 5247)
Copyright (C) 2005 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There
is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (Darwin)

iD8DBQFDl8tXzGDdrzfvUpURAvr6AJ9G2yuSp1qukOz8tAICza5//vMcAACfaWUm
9WH4HxeloGps+aYoMcursnU=
=s5sj
-----END PGP SIGNATURE-----

Leopold Toetsch

unread,
Dec 8, 2005, 4:27:56 AM12/8/05
to Brent Fulgham, perl6-i...@perl.org

On Dec 8, 2005, at 6:57, Brent Fulgham wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> In addition to the shootout machine, I have a main development box
> that runs Mac OS X (PowerPC). I attempted to build Parrot 0.4.0 on
> this machine and encountered errors. The mailing list archive seems
> to be down at the moment, so I could not check for others with this
> issue. Is this a known problem? I am using the XCode tools 2.2,
> which means basically a gcc 4.0 compiler.
>

> src/inter_call.c:637: error: conflicting types for 'parrot_pass_args'


> /opt/local/include/parrot/inter_call.h:78: error: previous declaration
> of 'parrot_pass_args' was here

Looks like that include/parrot from an installed Parrot is used instead
the one in the src tree.
What do you get after 'make'?

Here are my settings from the darwin box:

$ make
Compiling with:
xx.c
cc -g -pipe -pipe -fno-common -no-cpp-precomp -I/usr/local/include
-pipe -fno-common -Wno-long-double -g -Wall -Wstrict-prototypes
-Wmissing-prototypes -Winline -Wpointer-arith -Wcast-qual -Wcast-align
-Wwrite-strings -Waggregate-return -Winline -W -Wno-unused
-Wsign-compare -Wformat-nonliteral -Wformat-security -Wpacked
-Wdisabled-optimization -falign-functions=16 -Wno-shadow -I./include
-DHAS_JIT -DPPC -DHAVE_COMPUTED_GOTO -I. -o xx.o -c xx.c

Well, having the includes -I./include at the end could be dangerous I
presume.

leo

Brent Fulgham

unread,
Dec 9, 2005, 2:24:14 AM12/9/05
to Leopold Toetsch, perl6-i...@perl.org
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

You are right -- I still had parrot-0.3.1 installed when I attempted
to build this version. Should it be necessary to uninstall your
existing version to update?

Thanks -- everything works great now.

- -Brent


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (Darwin)

iD8DBQFDmTEfzGDdrzfvUpURAhjHAKCXGimWdIWWU/50aF54XhlNNmbyjACgro+Y
NByDJVeOWQEtP+6QQQ57Xig=
=e2sP
-----END PGP SIGNATURE-----

Brent Fulgham

unread,
Dec 9, 2005, 3:08:24 AM12/9/05
to perl6-i...@perl.org
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


Do I need to pass compiler options to get SDL support? When I try to
use the tests in the examples directory, it can't seem to find my SDL
libraries and so forth.

Can a standard search path (e.g., DarwinPorts typical /opt/local/lib)
be included in parrots compile, or do I need to pass something to the
parrot interpreter at runtime?

Thanks,

- -Brent


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (Darwin)

iD8DBQFDmTt4zGDdrzfvUpURAjfmAJ0WY357CwicSQJksFFdbrvd6LeBkwCeIsqH
TWyc7btndyN12hHcU9qeNks=
=hLeg
-----END PGP SIGNATURE-----

Leopold Toetsch

unread,
Dec 9, 2005, 3:23:23 AM12/9/05
to Brent Fulgham, perl6-i...@perl.org

On Dec 9, 2005, at 8:24, Brent Fulgham wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
>

> On Dec 8, 2005, at 1:27 AM, Leopold Toetsch wrote:
>>
>> Well, having the includes -I./include at the end could be dangerous I
>> presume.
>
> You are right -- I still had parrot-0.3.1 installed when I attempted
> to build this version. Should it be necessary to uninstall your
> existing version to update?

Not in the long run of course. For now it is obviously necessary.

> Thanks -- everything works great now.

Fine

leo

Chromatic

unread,
Dec 9, 2005, 3:26:59 AM12/9/05
to Brent Fulgham, perl6-i...@perl.org
On Fri, 2005-12-09 at 00:08 -0800, Brent Fulgham wrote:

> Do I need to pass compiler options to get SDL support? When I try to
> use the tests in the examples directory, it can't seem to find my SDL
> libraries and so forth.
>
> Can a standard search path (e.g., DarwinPorts typical /opt/local/lib)
> be included in parrots compile, or do I need to pass something to the
> parrot interpreter at runtime?

As I read the code, this all happens at runtime (see
runtime/parrot/library/SDL.imc) -- the loadlib op there (eventually)
calls dlopen() on your platform.

Whatever you have to do on Mac OS X to identify paths to dynamically
loadable libraries, you probably have to do that. If I were to guess, I
would check the value of the LD_LIBRARY_PATH environment variable.

It could be that Parrot doesn't add the '.dylib' extension where it
should, but my first guess is to see if dlopen() can find the library
appropriately.

-- c

Joshua Hoblitt

unread,
Dec 10, 2005, 7:34:29 PM12/10/05
to Leopold Toetsch, Brent Fulgham, perl6-i...@perl.org
On Thu, Dec 08, 2005 at 10:27:56AM +0100, Leopold Toetsch wrote:
> Here are my settings from the darwin box:
>
> $ make
> Compiling with:
> xx.c
> cc -g -pipe -pipe -fno-common -no-cpp-precomp -I/usr/local/include
> -pipe -fno-common -Wno-long-double -g -Wall -Wstrict-prototypes
> -Wmissing-prototypes -Winline -Wpointer-arith -Wcast-qual -Wcast-align
> -Wwrite-strings -Waggregate-return -Winline -W -Wno-unused
> -Wsign-compare -Wformat-nonliteral -Wformat-security -Wpacked
> -Wdisabled-optimization -falign-functions=16 -Wno-shadow -I./include
> -DHAS_JIT -DPPC -DHAVE_COMPUTED_GOTO -I. -o xx.o -c xx.c
>
> Well, having the includes -I./include at the end could be dangerous I
> presume.

I suspect that simply moving the -I./include to be in front of
-I/usr/local/include would resolve the issue.

-J

--

Brent Fulgham

unread,
Dec 11, 2005, 12:30:08 AM12/11/05
to chromatic, perl6-i...@perl.org
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


On Dec 9, 2005, at 12:26 AM, chromatic wrote:

>> Can a standard search path (e.g., DarwinPorts typical /opt/local/lib)
>> be included in parrots compile, or do I need to pass something to the
>> parrot interpreter at runtime?
>
> As I read the code, this all happens at runtime (see
> runtime/parrot/library/SDL.imc) -- the loadlib op there (eventually)
> calls dlopen() on your platform.
>
> Whatever you have to do on Mac OS X to identify paths to dynamically
> loadable libraries, you probably have to do that. If I were to
> guess, I
> would check the value of the LD_LIBRARY_PATH environment variable.

I think the problem is the weird distinction Mac OS X (Mach Kernel)
makes
between shared libraries and dynamic modules. I have the shared
library (*.dylib)
and the static libraries, but no "loadable" *.so modules.

So this may just be an SDL install problem.

> It could be that Parrot doesn't add the '.dylib' extension where it
> should, but my first guess is to see if dlopen() can find the library
> appropriately.

Can you think of any other loadable modules that Parrot builds by
default -- something that should be in a known state after a
successful build? ICU or something perhaps? That would allow
me to see if this is a problem across all module loads, or just
something unique to my install of SDL.

Thanks,

- -Brent

P.S. Congratulations on your new book.


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (Darwin)

iD8DBQFDm7ljzGDdrzfvUpURAoh6AJ9mtfTvi0bP4GKGvyaxHbYMUmqlQACfTria
co5EL8nWZyr9f7VHHF1VlSg=
=jwxF
-----END PGP SIGNATURE-----

Chromatic

unread,
Dec 11, 2005, 12:53:17 AM12/11/05
to Brent Fulgham, perl6-i...@perl.org
On Sat, 2005-12-10 at 21:30 -0800, Brent Fulgham wrote:

> I think the problem is the weird distinction Mac OS X (Mach Kernel)
> makes between shared libraries and dynamic modules. I have the shared
> library (*.dylib) and the static libraries, but no "loadable" *.so modules.
>
> So this may just be an SDL install problem.

I'm not sure, but I'm not a Mac OS X guy.

> Can you think of any other loadable modules that Parrot builds by
> default -- something that should be in a known state after a
> successful build? ICU or something perhaps? That would allow
> me to see if this is a problem across all module loads, or just
> something unique to my install of SDL.

You could try moving runtime/parrot/dynext/libnci_test.* to the same
directory as your SDL libraries, then running t/pmc/nci.t. If the tests
pass, Parrot's finding the NCI test shared library just fine and the
problem is with SDL.

> P.S. Congratulations on your new book.

Thank you!

-- c

0 new messages