One possibility is a path issue in your environment. It appears that
the source has all the necessary includes and function declarations.
First, build/windows-i386-compile-fast/type-declarations.cpp does
define a function named singletonBody:
inline uintptr_t&
singletonBody(Thread* t UNUSED, object o, unsigned i) {
Second, src/machine.h is including type-declarations.cpp, so any
references to that function in machine.h should be resolved properly.
When I was debugging the Windows build initially, I used echos a lot
to confirm path settings. For example, a certain line in the makefile
might be something like this:
$(gcc) $(CFLAGS) -I$(JAVA_HOME) ...
I would change the entry to:
echo $(gcc) $(CFLAGS) -I$(JAVA_HOME) ...
Then, when running the build, I could see what flags and paths are
being used. This helped to pinpoint paths that needed some adjusting
for the Windows build. If you give this a try, you might see that some
path is incorrect.
> $ gcc -v
This probably won't solve your problem, but I did my Windows/MSys
build with gcc 3.4.5. I suppose there is a small chance that gcc 3.4.2
has some kind of bug that is causing this issue to occur.
> When I was debugging the Windows build initially, I used echos a lot
> to confirm path settings. For example, a certain line in the makefile
> might be something like this:
>
> $(gcc) $(CFLAGS) -I$(JAVA_HOME) ...
>
> I would change the entry to:
>
> echo $(gcc) $(CFLAGS) -I$(JAVA_HOME) ...
>
> Then, when running the build, I could see what flags and paths are
> being used. This helped to pinpoint paths that needed some adjusting
> for the Windows build. If you give this a try, you might see that some
> path is incorrect.
Or you can just remove the "MAKEFLAGS = -s" line at the top of the
makefile. That will allow you to see every command that is executed
(except for a few prefixed with "@").
The bizarre thing about this is that the compiler is not complaining about
any of the other functions declared in type-declarations.cpp, like
byteArrayBody and stringHashCode - only singletonBody. Upgrading your
compiler might be a good idea.
That is way better than echos -- thanks for the tip. I haven't used
make all that much.
> This problem exists in the current gitted source and the solution is
> same on my windows and mingw.
> Is there anybody else meet the same problem?
I haven't been able to reproduce this, but I've made a change that might
fix it.
The code in type-declarations.cpp, type-initializations.cpp, etc. is
generated by type-generator (compiled from type-generator.cpp), which uses
types.def as input. There was code in type-generator.cpp which added a
"0" to the name of the accessor for any field marked with the "hide"
keyword in types.def, allowing us to override that accessor with
hand-written code. However, types.def does not have any "hidden" fields
anymore, so the code was unecessary, and I've removed it.
Please let me know if this fixes your problem.
> --‾--‾---------‾--‾----‾------------‾-------‾--‾----‾
> You received this message because you are subscribed to the Google Groups "Avian" group.
> To post to this group, send email to av...@googlegroups.com
> To unsubscribe from this group, send email to avian+un...@googlegroups.com
> For more options, visit this group at http://groups.google.com/group/avian?hl=en
> -‾----------‾----‾----‾----‾------‾----‾------‾--‾---
>