Ticket #1294 (closed bug: fixed)

Opened 5 years ago

Last modified 5 years ago

Build failure on OpenBSD 4.6 -- missing dependency?

Reported by: doughera Owned by:
Priority: normal Milestone:
Component: build Version: 1.7.0
Severity: medium Keywords:
Cc: Language:
Patch status: Platform:

Description

When building with r42551, I got the following error. I suspect a missing Makefile dependency of some sort, since I was trying a parallel 'make' command. This was on OpenBSD 4.6/x86.

cc -c -o foo2.o -I/home/doughera/src/parrot/parrot-svn/include -I/home/doughera/src/parrot/parrot-svn/include/pmc [more flags]  foo2.c
foo2.c:21:21: pmc_foo.h: No such file or directory
./foo2.pmc: In function `Parrot_Foo2_get_integer':
./foo2.pmc:14: warning: implicit declaration of function `Parrot_Foo_get_vtable'
./foo2.pmc:14: error: invalid type argument of `->'
./foo2.c: In function `Parrot_Foo2_get_vtable':
./foo2.c:77: warning: assignment makes pointer from integer without a cast
./foo2.c: In function `Parrot_Foo2_ro_get_vtable':
./foo2.c:88: warning: implicit declaration of function `Parrot_Foo_ro_get_vtable'
./foo2.c:88: warning: assignment makes pointer from integer without a cast
./foo2.c: In function `Parrot_Foo2_get_mro':
./foo2.c:101: warning: implicit declaration of function `Parrot_Foo_get_mro'
./foo2.c:101: warning: assignment makes pointer from integer without a cast
./foo2.c: In function `Parrot_Foo2_get_isa':
./foo2.c:115: warning: implicit declaration of function `Parrot_Foo_get_isa'
./foo2.c:115: warning: assignment makes pointer from integer without a cast
*** Error code 1 
Stop in /home/doughera/src/parrot/parrot-svn/src/dynpmc:
 Exit status 1 (foo2.o, line 122 of Makefile)

Change History

Changed 5 years ago by coke

On Tue, Nov 17, 2009 at 8:56 AM, Parrot <parrot-tickets@lists.parrot.org> wrote:
> #1294: Build failure on OpenBSD 4.6 -- missing dependency?
> ----------------------+-----------------------------------------------------
>  Reporter:  doughera  |       Owner:
>     Type:  bug       |      Status:  new
>  Priority:  normal    |   Milestone:
> Component:  build     |     Version:  1.7.0
>  Severity:  medium    |    Keywords:
>     Lang:            |       Patch:
>  Platform:            |
> ----------------------+-----------------------------------------------------
>  When building with r42551, I got the following error.  I suspect a missing
>  Makefile dependency of some sort, since I was trying a parallel 'make'
>  command.  This was on OpenBSD 4.6/x86.
>
>  {{{
>  cc -c -o foo2.o -I/home/doughera/src/parrot/parrot-svn/include
>  -I/home/doughera/src/parrot/parrot-svn/include/pmc [more flags]  foo2.c
>  foo2.c:21:21: pmc_foo.h: No such file or directory
>  ./foo2.pmc: In function `Parrot_Foo2_get_integer':
>  ./foo2.pmc:14: warning: implicit declaration of function
>  `Parrot_Foo_get_vtable'
>  ./foo2.pmc:14: error: invalid type argument of `->'
>  ./foo2.c: In function `Parrot_Foo2_get_vtable':
>  ./foo2.c:77: warning: assignment makes pointer from integer without a cast
>  ./foo2.c: In function `Parrot_Foo2_ro_get_vtable':
>  ./foo2.c:88: warning: implicit declaration of function
>  `Parrot_Foo_ro_get_vtable'
>  ./foo2.c:88: warning: assignment makes pointer from integer without a cast
>  ./foo2.c: In function `Parrot_Foo2_get_mro':
>  ./foo2.c:101: warning: implicit declaration of function
>  `Parrot_Foo_get_mro'
>  ./foo2.c:101: warning: assignment makes pointer from integer without a
>  cast
>  ./foo2.c: In function `Parrot_Foo2_get_isa':
>  ./foo2.c:115: warning: implicit declaration of function
>  `Parrot_Foo_get_isa'
>  ./foo2.c:115: warning: assignment makes pointer from integer without a
>  cast
>  *** Error code 1
>  Stop in /home/doughera/src/parrot/parrot-svn/src/dynpmc:
>  Exit status 1 (foo2.o, line 122 of Makefile)
>  }}}
>
> --
> Ticket URL: <https://trac.parrot.org/parrot/ticket/1294>
> Parrot <https://trac.parrot.org/parrot/>
> Parrot Development
> _______________________________________________
> parrot-tickets mailing list
> parrot-tickets@lists.parrot.org
> http://lists.parrot.org/mailman/listinfo/parrot-tickets
>

The handrolled make rules in config/gen/makefiles/dynpmc.in are not complete.

These should be generated in the same fashion as the core deps in the
main makefile (and the dynpmc makefile should be incorporated into the
main makefile instead of being separated out)

These aren't caught by tools/dev/checkdepend.pl because that tool only
checks the main Makefile.

I had thought this might be a result of the pmc header move, but it
looks like it's been this way for some time and just hasn't happened
to break for anyone yet.

-- 
Will "Coke" Coleda

Changed 5 years ago by barney

In r42557 I added an explicit dependency for the special case.

But getting rid of the handrolled rules is of course the way to go.

Changed 5 years ago by doughera

  • status changed from new to closed
  • resolution set to fixed
Note: See TracTickets for help on using tickets.