Hi,
Looking at the compiler once more it looks as if int32_t is long on MINIX,
whereas on Linux it is int. In
https://gforge.cs.vu.nl/gf/project/minix/scmsvn/?action=browse&path=/trunk/src/include/minix/types.h&view=markup
i32_t
is typedef to long when __SIZEOF_LONG__ == 4.
I found some more mixed uses int/int32_t, which might be causing the
compiler issues you are facing. Could you maybe try the patch below, which
should get rid of more of these, and see where that brings you.
Regards,
Søren
Index: src/jsregexp.cc
===================================================================
--- src/jsregexp.cc (revision 5322)
+++ src/jsregexp.cc (working copy)
@@ -487,7 +487,7 @@
(IrregexpNumberOfCaptures(FixedArray::cast(jsregexp->data())) + 1)
* 2;
last_match_info->EnsureSize(capture_register_count +
kLastMatchOverhead);
AssertNoAllocation no_gc;
- int* register_vector = registers.vector();
+ int32_t* register_vector = registers.vector();
FixedArray* array = FixedArray::cast(last_match_info->elements());
for (int i = 0; i < capture_register_count; i += 2) {
SetCapture(array, i, register_vector[i]);
@@ -5243,7 +5243,7 @@
}
-int OffsetsVector::static_offsets_vector_[
+int32_t OffsetsVector::static_offsets_vector_[
OffsetsVector::kStaticOffsetsVectorSize];
}} // namespace v8::internal
Index: src/jsregexp.h
===================================================================
--- src/jsregexp.h (revision 5322)
+++ src/jsregexp.h (working copy)
@@ -1428,7 +1428,7 @@
inline OffsetsVector(int num_registers)
: offsets_vector_length_(num_registers) {
if (offsets_vector_length_ > kStaticOffsetsVectorSize) {
- vector_ = NewArray<int>(offsets_vector_length_);
+ vector_ = NewArray<int32_t>(offsets_vector_length_);
} else {
vector_ = static_offsets_vector_;
}
@@ -1439,7 +1439,7 @@
vector_ = NULL;
}
}
- inline int* vector() { return vector_; }
+ inline int32_t* vector() { return vector_; }
inline int length() { return offsets_vector_length_; }
static const int kStaticOffsetsVectorSize = 50;
@@ -1449,9 +1449,9 @@
return reinterpret_cast<Address>(&static_offsets_vector_);
}
- int* vector_;
+ int32_t* vector_;
int offsets_vector_length_;
- static int static_offsets_vector_[kStaticOffsetsVectorSize];
+ static int32_t static_offsets_vector_[kStaticOffsetsVectorSize];
friend class ExternalReference;
};
On Sat, Aug 21, 2010 at 20:50, pikpik <[email protected]> wrote:
> Hi,
>
> Thanks for these suggestions! I've started using the "bleeding_edge,"
> turned off the C99 and C++0x standards, and have applied my changes to
> my local copy of "bleeding_edge."
>
> Unfortunately, it looks like I'm getting:
>
> src/jsregexp.cc:484: error: no matching function for call to
> 'v8::internal::Vector<long int>::Vector(int*, int)'
>
> I'm not sure how that makes sense though, as the code does now use
> "Vector<int32_t>." Perhaps this is a problem with some of my settings
> or header files?
>
> I've made two files that have:
> - my changes to V8: "v8-bleeding_edge-minix-changes-8-21-2010.diff"
> - the results from my latest build: "test-bleeding-edge-8-20-2010-
> log.txt"
>
> They are under "Building with SCons" at
>
> https://sites.google.com/site/pikpikproject/projects/minix-3/porting-google-s-v8-javascript-engine
>
> Thanks for your help and I hope this makes sense,
> pikpik
>
> --
> v8-users mailing list
> [email protected]
> http://groups.google.com/group/v8-users
>
--
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users