Hi,

To me it looks like you have reverted the change in src/jsregexp.cc from
r5298 <http://code.google.com/p/v8/source/detail?r=5298> to make it compile.

Regarding platform-nullos.cc you will have to copy it to platform-minix.cc
and implement all the functions as mostly just unimplemented stubs. You can
take a look in the other platform-XXX.cc files for implementations for other
operating systems.

Also instead of setting CC and CXX in src/SConscript you should set them up
in the environment. I use a script like this when cross compiling for ARM.

  export
TOOL_PREFIX=/opt/crosstool/gcc-4.3.2/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi
  export CXX=$TOOL_PREFIX-g++
  export AR=$TOOL_PREFIX-ar
  export RANLIB=$TOOL_PREFIX-ranlib
  export CC=$TOOL_PREFIX-gcc

Regards,
Søren

On Mon, Aug 30, 2010 at 20:17, pikpik <[email protected]> wrote:

> Hi,
>
> I tried editing V8 to see what I could get working for MINIX.
> Thankfully, unless I changed something I shouldn't have, "src/
> jsregexp.cc" is no longer an issue for me on MINIX. :)
>
> Sadly, V8 still doesn't work on MINIX 3, and now I have problems with
> "src/platform-nullos.cc."
>
> Here are my changes to V8 (svn diff > changes.diff):
>
> ---Beginning of Diff.---
> Index: tools/utils.py
> ===================================================================
> --- tools/utils.py      (revision 5374)
> +++ tools/utils.py      (working copy)
> @@ -59,6 +59,8 @@
>     return 'openbsd'
>   elif id == 'SunOS':
>     return 'solaris'
> +  elif id == 'Minix':
> +    return 'minix'
>   else:
>     return None
>
> Index: src/SConscript
> ===================================================================
> --- src/SConscript      (revision 5374)
> +++ src/SConscript      (working copy)
> @@ -199,6 +199,7 @@
>   'os:freebsd': ['platform-freebsd.cc', 'platform-posix.cc'],
>   'os:openbsd': ['platform-openbsd.cc', 'platform-posix.cc'],
>   'os:linux':   ['platform-linux.cc', 'platform-posix.cc'],
> +  'os:minix':   ['platform-nullos.cc', 'platform-posix.cc'],
>   'os:android': ['platform-linux.cc', 'platform-posix.cc'],
>   'os:macos':   ['platform-macos.cc', 'platform-posix.cc'],
>   'os:solaris': ['platform-solaris.cc', 'platform-posix.cc'],
> @@ -218,6 +219,9 @@
>   'os:linux': [
>     'd8-posix.cc'
>   ],
> +  'os:minix': [
> +    'd8-posix.cc'
> +  ],
>   'os:macos': [
>     'd8-posix.cc'
>   ],
> @@ -270,6 +274,11 @@
>
>  def ConfigureObjectFiles():
>   env = Environment()
> +
> +  #minix
> +  env.Replace(CC = '/usr/gnu/bin/gcc')
> +  env.Replace(CXX = '/usr/gnu/bin/g++')
> +
>   env.Replace(**context.flags['v8'])
>   context.ApplyEnvOverrides(env)
>   env['BUILDERS']['JS2C'] = Builder(action=js2c.JS2C)
> Index: src/jsregexp.cc
> ===================================================================
> --- src/jsregexp.cc     (revision 5374)
> +++ src/jsregexp.cc     (working copy)
> @@ -384,7 +384,7 @@
>     Handle<JSRegExp> regexp,
>     Handle<String> subject,
>     int index,
> -    Vector<int32_t> output) {
> +    Vector<int> output) {
>   Handle<FixedArray> irregexp(FixedArray::cast(regexp->data()));
>
>   ASSERT(index >= 0);
> @@ -480,8 +480,8 @@
>   OffsetsVector registers(required_registers);
>
>   IrregexpResult res = RegExpImpl::IrregexpExecOnce(
> -      jsregexp, subject, previous_index,
> Vector<int32_t>(registers.vector(),
> -
> registers.length()));
> +      jsregexp, subject, previous_index,
> Vector<int>(registers.vector(),
> +
> registers.length()));
>   if (res == RE_SUCCESS) {
>     int capture_register_count =
>          (IrregexpNumberOfCaptures(FixedArray::cast(jsregexp->data()))
> + 1) * 2;
> Index: src/jsregexp.h
> ===================================================================
> --- src/jsregexp.h      (revision 5374)
> +++ src/jsregexp.h      (working copy)
> @@ -114,7 +114,7 @@
>   static IrregexpResult IrregexpExecOnce(Handle<JSRegExp> regexp,
>                                          Handle<String> subject,
>                                          int index,
> -                                         Vector<int32_t> registers);
> +                                         Vector<int> registers);
>
>   // Execute an Irregexp bytecode pattern.
>   // On a successful match, the result is a JSArray containing
> Index: src/dtoa-config.c
> ===================================================================
> --- src/dtoa-config.c   (revision 5374)
> +++ src/dtoa-config.c   (working copy)
> @@ -39,7 +39,7 @@
>
>  #if !(defined(__APPLE__) && defined(__MACH__)) && \
>     !defined(WIN32) && !defined(__FreeBSD__) && !defined(__OpenBSD__)
> && \
> -    !defined(__sun)
> +    !defined(__sun) && !defined(_MINIX)
>  #include <endian.h>
>  #endif
>  #include <math.h>
> @@ -49,6 +49,7 @@
>  * emulation is used, even if the byte order is little endian */
>  #if !(defined(__APPLE__) && defined(__MACH__)) && !defined(WIN32) &&
> \
>     !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__sun)
> && \
> +    !defined(_MINIX) && \
>     __FLOAT_WORD_ORDER == __BIG_ENDIAN
>  #define  IEEE_MC68k
>  #else
> @@ -57,7 +58,7 @@
>
>  #define __MATH_H__
>  #if defined(__APPLE__) && defined(__MACH__) || defined(__FreeBSD__)
> || \
> -    defined(__OpenBSD__) || defined(__sun)
> +    defined(__OpenBSD__) || defined(__sun) || defined(_MINIX)
>  /* stdlib.h on FreeBSD and Apple's 10.5 and later SDKs will mangle
> the
>  * name of strtod.  If it's included after strtod is redefined as
>  * gay_strtod, it will mangle the name of gay_strtod, which is
> Index: SConstruct
> ===================================================================
> --- SConstruct  (revision 5374)
> +++ SConstruct  (working copy)
> @@ -130,7 +130,7 @@
>     },
>     'visibility:hidden': {
>       # Use visibility=default to disable this.
> -      'CXXFLAGS':     ['-fvisibility=hidden']
> +      #minix: 'CXXFLAGS':     ['-fvisibility=hidden']
>     },
>     'mode:debug': {
>       'CCFLAGS':      ['-g', '-O0'],
> @@ -140,8 +140,11 @@
>       }
>     },
>     'mode:release': {
> -      'CCFLAGS':      ['-O3', '-fomit-frame-pointer', '-fdata-
> sections',
> -                       '-ffunction-sections'],
> +      'CCFLAGS':      ['-O3', '-fomit-frame-pointer',
> +                       #MINIX 3: Non-ELF
> +                       #'-fdata-sections',
> +                       #'-ffunction-sections'
> +                      ],
>       'os:android': {
>         'CCFLAGS':    ['-mthumb', '-Os'],
>         'CPPDEFINES': ['SK_RELEASE', 'NDEBUG']
> @@ -154,6 +157,17 @@
>         'LIBS': ['pthread']
>       }
>     },
> +    'os:minix': {
> +      'CCFLAGS':      [
> +                        '-ansi',
> +                        '-Wno-char-subscripts',
> +                        '-fno-strict-aliasing'
> +                      ] + GCC_EXTRA_CCFLAGS,
> +      'library:shared': {
> +        'CPPDEFINES': ['V8_SHARED'],
> +        'LIBS': ['pthread']
> +      }
> +    },
>     'os:macos': {
>       'CCFLAGS':      ['-ansi', '-mmacosx-version-min=10.4'],
>       'library:shared': {
> @@ -308,6 +322,9 @@
>         }
>       }
>     },
> +    'os:minix': {
> +      'WARNINGFLAGS': ['-pedantic']
> +    },
>     'os:macos': {
>       'WARNINGFLAGS': ['-pedantic']
>     },
> @@ -344,6 +361,9 @@
>     'os:linux': {
>       'LIBS': ['pthread'],
>     },
> +    'os:minix': {
> +      'LIBS': ['pthread'],
> +    },
>     'os:macos': {
>       'LIBS': ['pthread'],
>     },
> @@ -396,6 +416,9 @@
>     'os:linux': {
>       'LIBS':         ['pthread'],
>     },
> +    'os:minix': {
> +      'LIBS':         ['pthread'],
> +    },
>     'os:macos': {
>       'LIBS':         ['pthread'],
>     },
> @@ -460,6 +483,9 @@
>     'os:linux': {
>       'LIBS':         ['pthread'],
>     },
> +    'os:minix': {
> +      'LIBS':         ['pthread'],
> +    },
>     'os:macos': {
>       'LIBS':         ['pthread'],
>     },
> @@ -599,6 +625,9 @@
>     'os:linux': {
>       'LIBS': ['pthread'],
>     },
> +    'os:minix': {
> +      'LIBS': ['pthread'],
> +    },
>     'os:macos': {
>       'LIBS': ['pthread'],
>     },
> @@ -666,7 +695,7 @@
>     'help': 'the toolchain to use (' + TOOLCHAIN_GUESS + ')'
>   },
>   'os': {
> -    'values': ['freebsd', 'linux', 'macos', 'win32', 'android',
> 'openbsd', 'solaris'],
> +    'values': ['freebsd', 'linux', 'minix', 'macos', 'win32',
> 'android', 'openbsd', 'solaris'],
>     'default': OS_GUESS,
>     'help': 'the os to build for (' + OS_GUESS + ')'
>   },
>
> ---Ending of Diff.---
>
> Thank you for your help!
> 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

Reply via email to