On 2011-11-16, Stuart Henderson <s...@spacehopper.org> wrote: > On 2011-11-16, Aaron Bieber <def...@gmail.com> wrote: >> Here is a cvs diff for 0.4.9 to 0.6.1. I am not sure I created it >> correctly, the files that are no longer needed still exist - but >> are empty. > > Great, thanks - your diff is created correctly (I use patch -E when > applying it, which removes the 0-byte files). I'll take a look at this > soon. > > >
updated diff, putting back some of our patches which got removed. this is also in openbsd-wip, https://github.com/jasperla/openbsd-wip Index: Makefile =================================================================== RCS file: /cvs/ports/www/node/Makefile,v retrieving revision 1.18 diff -u -p -r1.18 Makefile --- Makefile 16 Sep 2011 12:00:07 -0000 1.18 +++ Makefile 16 Nov 2011 13:27:07 -0000 @@ -8,8 +8,8 @@ ONLY_FOR_ARCHS= amd64 i386 COMMENT= V8 JavaScript for clients and servers -DISTNAME= node-v0.4.9 -REVISION= 0 +NODE_VERSION= v0.6.1 +DISTNAME= node-${NODE_VERSION} PKGNAME= ${DISTNAME:S/v//g} CATEGORIES= www devel @@ -22,27 +22,24 @@ PERMIT_PACKAGE_FTP= Yes PERMIT_DISTFILES_CDROM= Yes PERMIT_DISTFILES_FTP= Yes -MASTER_SITES= ${HOMEPAGE}/dist/ +MASTER_SITES= ${HOMEPAGE}/dist/${NODE_VERSION}/ MODULES= lang/python VMEM_WARNING= Yes -WANTLIB += c crypto execinfo ev kvm m pthread ssl stdc++ util +WANTLIB += c crypto execinfo kvm m pthread ssl stdc++ util -LIB_DEPENDS= devel/libev \ - devel/libexecinfo +LIB_DEPENDS= devel/libexecinfo -CONFIGURE_STYLE= simple -CONFIGURE_ARGS+= --shared-libev-libpath="${LOCALBASE}/lib" \ - --shared-libev-include="${LOCALBASE}/include" +USE_GMAKE= Yes MODPY_ADJ_FILES=wscript \ tools/node-waf \ tools/waf-light -# These don't require complete rebuilds of the tree -REGRESS_TARGET= test-message test-simple test-pummel test-internet +REGRESS_TARGET= test +CONFIGURE_STYLE= simple SUBST_VARS+= CFLAGS @@ -51,9 +48,6 @@ MAKE_ENV+= CXX=c++ CCFLAGS+="${CFLAGS}" NO_CCACHE= Yes pre-configure: - ${SUBST_CMD} ${WRKSRC}/wscript \ - ${WRKSRC}/Makefile \ - ${WRKSRC}/tools/wafadmin/Tools/python.py # Bad practice, but prevents a whole stack of patches. ln -sf ${LOCALBASE}/bin/python${MODPY_VERSION} ${WRKDIR}/bin/python Index: distinfo =================================================================== RCS file: /cvs/ports/www/node/distinfo,v retrieving revision 1.7 diff -u -p -r1.7 distinfo --- distinfo 29 Jun 2011 18:44:07 -0000 1.7 +++ distinfo 16 Nov 2011 13:27:07 -0000 @@ -1,5 +1,5 @@ -MD5 (node-v0.4.9.tar.gz) = 5SW4uZ2Um/LwMbwmLBOOlg== -RMD160 (node-v0.4.9.tar.gz) = AWmnnaUmIx2U6pp4dV9fqPBE4rs= -SHA1 (node-v0.4.9.tar.gz) = zptiuqmTs4Wx79ZgWFA+ohWgg4k= -SHA256 (node-v0.4.9.tar.gz) = 8jHqbRnqnqTH+Of/UGHn0wHxY1vsftD/Hu8lEldupEI= -SIZE (node-v0.4.9.tar.gz) = 4994552 +MD5 (node-v0.6.1.tar.gz) = krgIWWcRCwElwZJjTxJ6Kw== +RMD160 (node-v0.6.1.tar.gz) = zekUWm6EIFpvKHxMAGs7dD8B4gc= +SHA1 (node-v0.6.1.tar.gz) = JbKjJ3k1DyNeWjVu96qD6nVxBxk= +SHA256 (node-v0.6.1.tar.gz) = sWEFDtjNstRfYBGB0UaCHlU1qPy/WXiy/wZOVHao5gY= +SIZE (node-v0.6.1.tar.gz) = 9276847 Index: patches/patch-Makefile =================================================================== RCS file: patches/patch-Makefile diff -N patches/patch-Makefile --- patches/patch-Makefile 30 Mar 2011 20:54:13 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,24 +0,0 @@ -$OpenBSD: patch-Makefile,v 1.1 2011/03/30 20:54:13 jasper Exp $ ---- Makefile.orig Wed Mar 30 22:41:54 2011 -+++ Makefile Wed Mar 30 22:43:47 2011 -@@ -41,16 +41,16 @@ test-debug: all - python tools/test.py --mode=debug - - test-message: all -- python tools/test.py message -+ ${MODPY_BIN} tools/test.py message - - test-simple: all -- python tools/test.py simple -+ ${MODPY_BIN} tools/test.py simple - - test-pummel: all -- python tools/test.py pummel -+ ${MODPY_BIN} tools/test.py pummel - - test-internet: all -- python tools/test.py internet -+ ${MODPY_BIN} tools/test.py internet - - build/default/node: all - Index: patches/patch-deps_v8_SConstruct =================================================================== RCS file: /cvs/ports/www/node/patches/patch-deps_v8_SConstruct,v retrieving revision 1.5 diff -u -p -r1.5 patch-deps_v8_SConstruct --- patches/patch-deps_v8_SConstruct 29 Apr 2011 07:41:15 -0000 1.5 +++ patches/patch-deps_v8_SConstruct 16 Nov 2011 13:27:07 -0000 @@ -1,26 +1,26 @@ -$OpenBSD: patch-deps_v8_SConstruct,v 1.5 2011/04/29 07:41:15 jasper Exp $ +$OpenBSD$ - Remove extra zoom-zoom! - Don't link with -lpthread but use -pthread instead. ---- deps/v8/SConstruct.orig Sat Apr 23 02:06:25 2011 -+++ deps/v8/SConstruct Fri Apr 29 00:07:18 2011 -@@ -154,7 +154,7 @@ LIBRARY_FLAGS = { - } +--- deps/v8/SConstruct.orig Wed Nov 16 13:43:22 2011 ++++ deps/v8/SConstruct Wed Nov 16 13:44:20 2011 +@@ -94,7 +94,7 @@ LIBRARY_FLAGS = { + 'CPPDEFINES': ['ENABLE_DISASSEMBLER', 'DEBUG'], }, 'mode:release': { - 'CCFLAGS': ['-O3', '-fomit-frame-pointer', '-fdata-sections', + 'CCFLAGS': ['-fomit-frame-pointer', '-fdata-sections', '-ffunction-sections'], - 'os:android': { - 'CCFLAGS': ['-mthumb', '-Os'], -@@ -368,7 +368,8 @@ MKSNAPSHOT_EXTRA_FLAGS = { + }, + 'os:linux': { +@@ -358,7 +358,8 @@ MKSNAPSHOT_EXTRA_FLAGS = { 'LINKFLAGS': ['-mt'] }, 'os:openbsd': { - 'LIBS': ['execinfo', 'pthread'] + 'LIBS': ['execinfo'], -+ 'LINKFLAGS': ['-pthread'] ++ 'LINKFLAGS': ['-pthread'], }, 'os:win32': { 'LIBS': ['winmm', 'ws2_32'], Index: patches/patch-deps_v8_src_atomicops_h =================================================================== RCS file: patches/patch-deps_v8_src_atomicops_h diff -N patches/patch-deps_v8_src_atomicops_h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-deps_v8_src_atomicops_h 16 Nov 2011 13:27:07 -0000 @@ -0,0 +1,15 @@ +$OpenBSD$ +--- deps/v8/src/atomicops.h.orig Tue Nov 8 18:37:38 2011 ++++ deps/v8/src/atomicops.h Tue Nov 8 18:38:53 2011 +@@ -69,7 +69,11 @@ typedef intptr_t Atomic64; + + // Use AtomicWord for a machine-sized pointer. It will use the Atomic32 or + // Atomic64 routines below, depending on your architecture. ++#if defined(__OpenBSD__) && defined(__i386__) ++typedef Atomic32 AtomicWord; ++#else + typedef intptr_t AtomicWord; ++#endif + + // Atomically execute: + // result = *ptr; Index: patches/patch-deps_v8_src_heap_cc =================================================================== RCS file: /cvs/ports/www/node/patches/patch-deps_v8_src_heap_cc,v retrieving revision 1.3 diff -u -p -r1.3 patch-deps_v8_src_heap_cc --- patches/patch-deps_v8_src_heap_cc 2 Jun 2011 07:21:14 -0000 1.3 +++ patches/patch-deps_v8_src_heap_cc 16 Nov 2011 13:27:07 -0000 @@ -1,7 +1,7 @@ -$OpenBSD: patch-deps_v8_src_heap_cc,v 1.3 2011/06/02 07:21:14 robert Exp $ ---- deps/v8/src/heap.cc.orig Sat May 21 04:40:06 2011 -+++ deps/v8/src/heap.cc Wed Jun 1 14:26:51 2011 -@@ -4503,6 +4503,29 @@ bool Heap::ConfigureHeap(int max_semispace_size, +$OpenBSD$ +--- deps/v8/src/heap.cc.orig Wed Nov 16 13:45:37 2011 ++++ deps/v8/src/heap.cc Wed Nov 16 13:47:00 2011 +@@ -5025,6 +5025,29 @@ bool Heap::ConfigureHeap(int max_semispace_size, initial_semispace_size_ = Min(initial_semispace_size_, max_semispace_size_); external_allocation_limit_ = 10 * max_semispace_size_; Index: patches/patch-deps_v8_src_platform-openbsd_cc =================================================================== RCS file: patches/patch-deps_v8_src_platform-openbsd_cc diff -N patches/patch-deps_v8_src_platform-openbsd_cc --- patches/patch-deps_v8_src_platform-openbsd_cc 30 Mar 2011 19:54:29 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,132 +0,0 @@ -$OpenBSD: patch-deps_v8_src_platform-openbsd_cc,v 1.1 2011/03/30 19:54:29 jasper Exp $ ---- deps/v8/src/platform-openbsd.cc.orig Sat Mar 26 09:48:02 2011 -+++ deps/v8/src/platform-openbsd.cc Wed Mar 30 21:21:02 2011 -@@ -1,4 +1,4 @@ --// Copyright 2006-2009 the V8 project authors. All rights reserved. -+// Copyright 2006-2008 the V8 project authors. All rights reserved. - // Redistribution and use in source and binary forms, with or without - // modification, are permitted provided that the following conditions are - // met: -@@ -164,6 +164,7 @@ void* OS::Allocate(const size_t requested, - - - void OS::Free(void* buf, const size_t length) { -+ // TODO(1240712): munmap has a return value which is ignored here. - int result = munmap(buf, length); - USE(result); - ASSERT(result == 0); -@@ -197,13 +198,7 @@ void OS::Abort() { - - - void OS::DebugBreak() { --#if (defined(__arm__) || defined(__thumb__)) --# if defined(CAN_USE_ARMV5_INSTRUCTIONS) -- asm("bkpt 0"); --# endif --#else - asm("int $3"); --#endif - } - - -@@ -309,8 +304,30 @@ void OS::SignalCodeMovingGC() { - - - int OS::StackWalk(Vector<OS::StackFrame> frames) { -- UNIMPLEMENTED(); -- return 1; -+ int frames_size = frames.length(); -+ ScopedVector<void*> addresses(frames_size); -+ -+ int frames_count = backtrace(addresses.start(), frames_size); -+ -+ char** symbols = backtrace_symbols(addresses.start(), frames_count); -+ if (symbols == NULL) { -+ return kStackWalkError; -+ } -+ -+ for (int i = 0; i < frames_count; i++) { -+ frames[i].address = addresses[i]; -+ // Format a text representation of the frame based on the information -+ // available. -+ SNPrintF(MutableCStrVector(frames[i].text, kStackWalkMaxTextLen), -+ "%s", -+ symbols[i]); -+ // Make sure line termination is in place. -+ frames[i].text[kStackWalkMaxTextLen - 1] = '\0'; -+ } -+ -+ free(symbols); -+ -+ return frames_count; - } - - -@@ -502,6 +519,16 @@ class OpenBSDMutex : public Mutex { - return result; - } - -+ virtual bool TryLock() { -+ int result = pthread_mutex_trylock(&mutex_); -+ // Return false if the lock is busy and locking failed. -+ if (result == EBUSY) { -+ return false; -+ } -+ ASSERT(result == 0); // Verify no other errors. -+ return true; -+ } -+ - private: - pthread_mutex_t mutex_; // Pthread mutex for POSIX platforms. - }; -@@ -571,18 +598,37 @@ Semaphore* OS::CreateSemaphore(int count) { - #ifdef ENABLE_LOGGING_AND_PROFILING - - static Sampler* active_sampler_ = NULL; -+static pthread_t vm_tid_ = 0; - -+typedef struct sigcontext ucontext_t; -+ - static void ProfilerSignalHandler(int signal, siginfo_t* info, void* context) { - USE(info); - if (signal != SIGPROF) return; -- if (active_sampler_ == NULL) return; -+ if (active_sampler_ == NULL || !active_sampler_->IsActive()) return; -+ if (vm_tid_ != pthread_self()) return; - -- TickSample sample; -+ TickSample sample_obj; -+ TickSample* sample = CpuProfiler::TickSampleEvent(); -+ if (sample == NULL) sample = &sample_obj; - -- // We always sample the VM state. -- sample.state = VMState::current_state(); -+ // Extracting the sample from the context is extremely machine dependent. -+ ucontext_t* ucontext = reinterpret_cast<ucontext_t*>(context); -+ sample->state = Top::current_vm_state(); - -- active_sampler_->Tick(&sample); -+#if V8_HOST_ARCH_IA32 -+ sample->pc = reinterpret_cast<Address>(ucontext->sc_eip); -+ sample->sp = reinterpret_cast<Address>(ucontext->sc_esp); -+ sample->fp = reinterpret_cast<Address>(ucontext->sc_ebp); -+#elif V8_HOST_ARCH_X64 -+ sample->pc = reinterpret_cast<Address>(ucontext->sc_rip); -+ sample->sp = reinterpret_cast<Address>(ucontext->sc_rsp); -+ sample->fp = reinterpret_cast<Address>(ucontext->sc_rbp); -+#else -+ UNIMPLEMENTED(); -+#endif -+ active_sampler_->SampleStack(sample); -+ active_sampler_->Tick(sample); - } - - -@@ -616,6 +662,7 @@ void Sampler::Start() { - // There can only be one active sampler at the time on POSIX - // platforms. - if (active_sampler_ != NULL) return; -+ vm_tid_ = pthread_self(); - - // Request profiling signals. - struct sigaction sa; Index: patches/patch-deps_v8_src_platform-posix_cc =================================================================== RCS file: patches/patch-deps_v8_src_platform-posix_cc diff -N patches/patch-deps_v8_src_platform-posix_cc --- patches/patch-deps_v8_src_platform-posix_cc 2 Jun 2011 07:21:14 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,22 +0,0 @@ -$OpenBSD: patch-deps_v8_src_platform-posix_cc,v 1.1 2011/06/02 07:21:14 robert Exp $ ---- deps/v8/src/platform-posix.cc.orig Sat May 21 04:40:06 2011 -+++ deps/v8/src/platform-posix.cc Wed Jun 1 14:26:51 2011 -@@ -54,6 +54,18 @@ - namespace v8 { - namespace internal { - -+ -+// Maximum size of the virtual memory. 0 means there is no artificial -+// limit. -+ -+intptr_t OS::MaxVirtualMemory() { -+ struct rlimit limit; -+ int result = getrlimit(RLIMIT_DATA, &limit); -+ if (result != 0) return 0; -+ return limit.rlim_cur; -+} -+ -+ - // ---------------------------------------------------------------------------- - // Math functions - Index: patches/patch-deps_v8_src_platform_h =================================================================== RCS file: /cvs/ports/www/node/patches/patch-deps_v8_src_platform_h,v retrieving revision 1.1 diff -u -p -r1.1 patch-deps_v8_src_platform_h --- patches/patch-deps_v8_src_platform_h 2 Jun 2011 07:21:14 -0000 1.1 +++ patches/patch-deps_v8_src_platform_h 16 Nov 2011 13:27:07 -0000 @@ -1,14 +1,15 @@ -$OpenBSD: patch-deps_v8_src_platform_h,v 1.1 2011/06/02 07:21:14 robert Exp $ ---- deps/v8/src/platform.h.orig Sat May 21 04:40:06 2011 -+++ deps/v8/src/platform.h Wed Jun 1 14:26:51 2011 -@@ -287,6 +287,10 @@ class OS { - // positions indicated by the members of the CpuFeature enum from globals.h - static uint64_t CpuFeaturesImpliedByPlatform(); +$OpenBSD$ +--- deps/v8/src/platform.h.orig Tue Nov 8 18:35:23 2011 ++++ deps/v8/src/platform.h Tue Nov 8 18:39:05 2011 +@@ -88,7 +88,11 @@ namespace internal { -+ // Maximum size of the virtual memory. 0 means there is no artificial -+ // limit. -+ static intptr_t MaxVirtualMemory(); -+ - // Returns the double constant NAN - static double nan_value(); + // Use AtomicWord for a machine-sized pointer. It is assumed that + // reads and writes of naturally aligned values of this type are atomic. ++#if defined(__OpenBSD__) && defined(__i386__) ++typedef Atomic32 AtomicWord; ++#else + typedef intptr_t AtomicWord; ++#endif + class Semaphore; + class Mutex; Index: patches/patch-deps_v8_src_x64_code-stubs-x64_cc =================================================================== RCS file: patches/patch-deps_v8_src_x64_code-stubs-x64_cc diff -N patches/patch-deps_v8_src_x64_code-stubs-x64_cc --- patches/patch-deps_v8_src_x64_code-stubs-x64_cc 12 Apr 2011 10:32:49 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,99 +0,0 @@ -$OpenBSD: patch-deps_v8_src_x64_code-stubs-x64_cc,v 1.2 2011/04/12 10:32:49 jasper Exp $ ---- deps/v8/src/x64/code-stubs-x64.cc.orig Sat Apr 2 03:00:43 2011 -+++ deps/v8/src/x64/code-stubs-x64.cc Tue Apr 12 10:07:08 2011 -@@ -2280,11 +2280,14 @@ void ArgumentsAccessStub::GenerateReadElement(MacroAss - Label slow; - __ JumpIfNotSmi(rdx, &slow); - -- // Check if the calling frame is an arguments adaptor frame. -+ // Check if the calling frame is an arguments adaptor frame. We look at the -+ // context offset, and if the frame is not a regular one, then we find a -+ // Smi instead of the context. We can't use SmiCompare here, because that -+ // only works for comparing two smis. - Label adaptor; - __ movq(rbx, Operand(rbp, StandardFrameConstants::kCallerFPOffset)); -- __ SmiCompare(Operand(rbx, StandardFrameConstants::kContextOffset), -- Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)); -+ __ Cmp(Operand(rbx, StandardFrameConstants::kContextOffset), -+ Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)); - __ j(equal, &adaptor); - - // Check index against formal parameters count limit passed in -@@ -2339,8 +2342,8 @@ void ArgumentsAccessStub::GenerateNewObject(MacroAssem - // Check if the calling frame is an arguments adaptor frame. - Label adaptor_frame, try_allocate, runtime; - __ movq(rdx, Operand(rbp, StandardFrameConstants::kCallerFPOffset)); -- __ SmiCompare(Operand(rdx, StandardFrameConstants::kContextOffset), -- Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)); -+ __ Cmp(Operand(rdx, StandardFrameConstants::kContextOffset), -+ Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)); - __ j(equal, &adaptor_frame); - - // Get the length from the frame. -@@ -4118,8 +4121,8 @@ void StringAddStub::Generate(MacroAssembler* masm) { - // Look at the length of the result of adding the two strings. - STATIC_ASSERT(String::kMaxLength <= Smi::kMaxValue / 2); - __ SmiAdd(rbx, rbx, rcx); -- // Use the runtime system when adding two one character strings, as it -- // contains optimizations for this specific case using the symbol table. -+ // Use the symbol table when adding two one character strings, as it -+ // helps later optimizations to return a symbol here. - __ SmiCompare(rbx, Smi::FromInt(2)); - __ j(not_equal, &longer_than_two); - -@@ -4471,15 +4474,14 @@ void StringHelper::GenerateTwoCharacterSymbolTableProb - FieldOperand(symbol_table, SymbolTable::kCapacityOffset)); - __ decl(mask); - -- Register undefined = scratch4; -- __ LoadRoot(undefined, Heap::kUndefinedValueRootIndex); -+ Register map = scratch4; - - // Registers - // chars: two character string, char 1 in byte 0 and char 2 in byte 1. - // hash: hash of two character string (32-bit int) - // symbol_table: symbol table - // mask: capacity mask (32-bit int) -- // undefined: undefined value -+ // map: - - // scratch: - - - // Perform a number of probes in the symbol table. -@@ -4494,7 +4496,7 @@ void StringHelper::GenerateTwoCharacterSymbolTableProb - } - __ andl(scratch, mask); - -- // Load the entry from the symble table. -+ // Load the entry from the symbol table. - Register candidate = scratch; // Scratch register contains candidate. - STATIC_ASSERT(SymbolTable::kEntrySize == 1); - __ movq(candidate, -@@ -4504,9 +4506,17 @@ void StringHelper::GenerateTwoCharacterSymbolTableProb - SymbolTable::kElementsStartOffset)); - - // If entry is undefined no string with this hash can be found. -- __ cmpq(candidate, undefined); -+ NearLabel is_string; -+ __ CmpObjectType(candidate, ODDBALL_TYPE, map); -+ __ j(not_equal, &is_string); -+ -+ __ CompareRoot(candidate, Heap::kUndefinedValueRootIndex); - __ j(equal, not_found); -+ // Must be null (deleted entry). -+ __ jmp(&next_probe[i]); - -+ __ bind(&is_string); -+ - // If length is not 2 the string is not a candidate. - __ SmiCompare(FieldOperand(candidate, String::kLengthOffset), - Smi::FromInt(2)); -@@ -4517,8 +4527,7 @@ void StringHelper::GenerateTwoCharacterSymbolTableProb - Register temp = kScratchRegister; - - // Check that the candidate is a non-external ascii string. -- __ movq(temp, FieldOperand(candidate, HeapObject::kMapOffset)); -- __ movzxbl(temp, FieldOperand(temp, Map::kInstanceTypeOffset)); -+ __ movzxbl(temp, FieldOperand(map, Map::kInstanceTypeOffset)); - __ JumpIfInstanceTypeIsNotSequentialAscii( - temp, temp, &next_probe[i]); - Index: patches/patch-deps_v8_src_x64_codegen-x64_cc =================================================================== RCS file: patches/patch-deps_v8_src_x64_codegen-x64_cc diff -N patches/patch-deps_v8_src_x64_codegen-x64_cc --- patches/patch-deps_v8_src_x64_codegen-x64_cc 30 Mar 2011 19:54:29 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,164 +0,0 @@ -$OpenBSD: patch-deps_v8_src_x64_codegen-x64_cc,v 1.1 2011/03/30 19:54:29 jasper Exp $ ---- deps/v8/src/x64/codegen-x64.cc.orig Sat Mar 26 09:48:02 2011 -+++ deps/v8/src/x64/codegen-x64.cc Wed Mar 30 21:21:29 2011 -@@ -760,7 +760,7 @@ void CodeGenerator::ToBoolean(ControlDestination* dest - __ AbortIfNotNumber(value.reg()); - } - // Smi => false iff zero. -- __ SmiCompare(value.reg(), Smi::FromInt(0)); -+ __ Cmp(value.reg(), Smi::FromInt(0)); - if (value.is_smi()) { - value.Unuse(); - dest->Split(not_zero); -@@ -788,7 +788,7 @@ void CodeGenerator::ToBoolean(ControlDestination* dest - dest->false_target()->Branch(equal); - - // Smi => false iff zero. -- __ SmiCompare(value.reg(), Smi::FromInt(0)); -+ __ Cmp(value.reg(), Smi::FromInt(0)); - dest->false_target()->Branch(equal); - Condition is_smi = masm_->CheckSmi(value.reg()); - dest->true_target()->Branch(is_smi); -@@ -1030,7 +1030,7 @@ void CodeGenerator::GenericBinaryOperation(BinaryOpera - true, overwrite_mode); - } else { - // Set the flags based on the operation, type and loop nesting level. -- // Bit operations always assume they likely operate on Smis. Still only -+ // Bit operations always assume they likely operate on smis. Still only - // generate the inline Smi check code if this operation is part of a loop. - // For all other operations only inline the Smi check code for likely smis - // if the operation is part of a loop. -@@ -2102,7 +2102,7 @@ void CodeGenerator::Comparison(AstNode* node, - if (cc == equal) { - Label comparison_done; - __ SmiCompare(FieldOperand(left_side.reg(), String::kLengthOffset), -- Smi::FromInt(1)); -+ Smi::FromInt(1)); - __ j(not_equal, &comparison_done); - uint8_t char_value = - static_cast<uint8_t>(String::cast(*right_val)->Get(0)); -@@ -2288,7 +2288,7 @@ void CodeGenerator::ConstantSmiComparison(Condition cc - // CompareStub and the inline code both support all values of cc. - } - // Implement comparison against a constant Smi, inlining the case -- // where both sides are Smis. -+ // where both sides are smis. - left_side->ToRegister(); - Register left_reg = left_side->reg(); - Smi* constant_smi = Smi::cast(*right_side->handle()); -@@ -2298,7 +2298,6 @@ void CodeGenerator::ConstantSmiComparison(Condition cc - __ AbortIfNotSmi(left_reg); - } - // Test smi equality and comparison by signed int comparison. -- // Both sides are smis, so we can use an Immediate. - __ SmiCompare(left_reg, constant_smi); - left_side->Unuse(); - right_side->Unuse(); -@@ -2308,7 +2307,7 @@ void CodeGenerator::ConstantSmiComparison(Condition cc - JumpTarget is_smi; - if (cc == equal) { - // We can do the equality comparison before the smi check. -- __ SmiCompare(left_reg, constant_smi); -+ __ Cmp(left_reg, constant_smi); - dest->true_target()->Branch(equal); - Condition left_is_smi = masm_->CheckSmi(left_reg); - dest->false_target()->Branch(left_is_smi); -@@ -2569,8 +2568,8 @@ void CodeGenerator::CallApplyLazy(Expression* applican - // adaptor frame below it. - Label invoke, adapted; - __ movq(rdx, Operand(rbp, StandardFrameConstants::kCallerFPOffset)); -- __ SmiCompare(Operand(rdx, StandardFrameConstants::kContextOffset), -- Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)); -+ __ Cmp(Operand(rdx, StandardFrameConstants::kContextOffset), -+ Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)); - __ j(equal, &adapted); - - // No arguments adaptor frame. Copy fixed number of arguments. -@@ -3851,7 +3850,7 @@ void CodeGenerator::VisitForInStatement(ForInStatement - __ movq(rbx, rax); - - // If the property has been removed while iterating, we just skip it. -- __ SmiCompare(rbx, Smi::FromInt(0)); -+ __ Cmp(rbx, Smi::FromInt(0)); - node->continue_target()->Branch(equal); - - end_del_check.Bind(); -@@ -6192,15 +6191,15 @@ void CodeGenerator::GenerateIsConstructCall(ZoneList<E - - // Skip the arguments adaptor frame if it exists. - Label check_frame_marker; -- __ SmiCompare(Operand(fp.reg(), StandardFrameConstants::kContextOffset), -- Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)); -+ __ Cmp(Operand(fp.reg(), StandardFrameConstants::kContextOffset), -+ Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)); - __ j(not_equal, &check_frame_marker); - __ movq(fp.reg(), Operand(fp.reg(), StandardFrameConstants::kCallerFPOffset)); - - // Check the marker in the calling frame. - __ bind(&check_frame_marker); -- __ SmiCompare(Operand(fp.reg(), StandardFrameConstants::kMarkerOffset), -- Smi::FromInt(StackFrame::CONSTRUCT)); -+ __ Cmp(Operand(fp.reg(), StandardFrameConstants::kMarkerOffset), -+ Smi::FromInt(StackFrame::CONSTRUCT)); - fp.Unuse(); - destination()->Split(equal); - } -@@ -6220,8 +6219,8 @@ void CodeGenerator::GenerateArgumentsLength(ZoneList<E - - // Check if the calling frame is an arguments adaptor frame. - __ movq(fp.reg(), Operand(rbp, StandardFrameConstants::kCallerFPOffset)); -- __ SmiCompare(Operand(fp.reg(), StandardFrameConstants::kContextOffset), -- Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)); -+ __ Cmp(Operand(fp.reg(), StandardFrameConstants::kContextOffset), -+ Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)); - __ j(not_equal, &exit); - - // Arguments adaptor case: Read the arguments length from the -@@ -6777,8 +6776,8 @@ void CodeGenerator::GenerateSwapElements(ZoneList<Expr - // Fetch the map and check if array is in fast case. - // Check that object doesn't require security checks and - // has no indexed interceptor. -- __ CmpObjectType(object.reg(), FIRST_JS_OBJECT_TYPE, tmp1.reg()); -- deferred->Branch(below); -+ __ CmpObjectType(object.reg(), JS_ARRAY_TYPE, tmp1.reg()); -+ deferred->Branch(not_equal); - __ testb(FieldOperand(tmp1.reg(), Map::kBitFieldOffset), - Immediate(KeyedLoadIC::kSlowCaseBitFieldMask)); - deferred->Branch(not_zero); -@@ -6820,7 +6819,7 @@ void CodeGenerator::GenerateSwapElements(ZoneList<Expr - - Label done; - __ InNewSpace(tmp1.reg(), tmp2.reg(), equal, &done); -- // Possible optimization: do a check that both values are Smis -+ // Possible optimization: do a check that both values are smis - // (or them and test against Smi mask.) - - __ movq(tmp2.reg(), tmp1.reg()); -@@ -8508,12 +8507,6 @@ Result CodeGenerator::EmitKeyedStore(StaticType* key_t - __ CmpObjectType(receiver.reg(), JS_ARRAY_TYPE, kScratchRegister); - deferred->Branch(not_equal); - -- // Check that the key is within bounds. Both the key and the length of -- // the JSArray are smis. Use unsigned comparison to handle negative keys. -- __ SmiCompare(FieldOperand(receiver.reg(), JSArray::kLengthOffset), -- key.reg()); -- deferred->Branch(below_equal); -- - // Get the elements array from the receiver and check that it is not a - // dictionary. - __ movq(tmp.reg(), -@@ -8541,6 +8534,14 @@ Result CodeGenerator::EmitKeyedStore(StaticType* key_t - __ cmpq(FieldOperand(tmp.reg(), HeapObject::kMapOffset), - kScratchRegister); - deferred->Branch(not_equal); -+ -+ // Check that the key is within bounds. Both the key and the length of -+ // the JSArray are smis (because the fixed array check above ensures the -+ // elements are in fast case). Use unsigned comparison to handle negative -+ // keys. -+ __ SmiCompare(FieldOperand(receiver.reg(), JSArray::kLengthOffset), -+ key.reg()); -+ deferred->Branch(below_equal); - - // Store the value. - SmiIndex index = Index: patches/patch-deps_v8_src_x64_full-codegen-x64_cc =================================================================== RCS file: patches/patch-deps_v8_src_x64_full-codegen-x64_cc diff -N patches/patch-deps_v8_src_x64_full-codegen-x64_cc --- patches/patch-deps_v8_src_x64_full-codegen-x64_cc 29 Jun 2011 18:44:07 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,43 +0,0 @@ -$OpenBSD: patch-deps_v8_src_x64_full-codegen-x64_cc,v 1.2 2011/06/29 18:44:07 jasper Exp $ ---- deps/v8/src/x64/full-codegen-x64.cc.orig Wed Jun 29 13:24:02 2011 -+++ deps/v8/src/x64/full-codegen-x64.cc Wed Jun 29 20:25:09 2011 -@@ -991,7 +991,7 @@ void FullCodeGenerator::VisitForInStatement(ForInState - __ push(rcx); // Enumerable. - __ push(rbx); // Current entry. - __ InvokeBuiltin(Builtins::FILTER_KEY, CALL_FUNCTION); -- __ SmiCompare(rax, Smi::FromInt(0)); -+ __ Cmp(rax, Smi::FromInt(0)); - __ j(equal, loop_statement.continue_target()); - __ movq(rbx, rax); - -@@ -2502,15 +2502,15 @@ void FullCodeGenerator::EmitIsConstructCall(ZoneList<E - - // Skip the arguments adaptor frame if it exists. - Label check_frame_marker; -- __ SmiCompare(Operand(rax, StandardFrameConstants::kContextOffset), -- Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)); -+ __ Cmp(Operand(rax, StandardFrameConstants::kContextOffset), -+ Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)); - __ j(not_equal, &check_frame_marker); - __ movq(rax, Operand(rax, StandardFrameConstants::kCallerFPOffset)); - - // Check the marker in the calling frame. - __ bind(&check_frame_marker); -- __ SmiCompare(Operand(rax, StandardFrameConstants::kMarkerOffset), -- Smi::FromInt(StackFrame::CONSTRUCT)); -+ __ Cmp(Operand(rax, StandardFrameConstants::kMarkerOffset), -+ Smi::FromInt(StackFrame::CONSTRUCT)); - PrepareForBailoutBeforeSplit(TOS_REG, true, if_true, if_false); - Split(equal, if_true, if_false, fall_through); - -@@ -2564,8 +2564,8 @@ void FullCodeGenerator::EmitArgumentsLength(ZoneList<E - - // Check if the calling frame is an arguments adaptor frame. - __ movq(rbx, Operand(rbp, StandardFrameConstants::kCallerFPOffset)); -- __ SmiCompare(Operand(rbx, StandardFrameConstants::kContextOffset), -- Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)); -+ __ Cmp(Operand(rbx, StandardFrameConstants::kContextOffset), -+ Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)); - __ j(not_equal, &exit); - - // Arguments adaptor case: Read the arguments length from the Index: patches/patch-deps_v8_src_x64_lithium-codegen-x64_cc =================================================================== RCS file: patches/patch-deps_v8_src_x64_lithium-codegen-x64_cc diff -N patches/patch-deps_v8_src_x64_lithium-codegen-x64_cc --- patches/patch-deps_v8_src_x64_lithium-codegen-x64_cc 28 Apr 2011 22:02:44 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,12 +0,0 @@ -$OpenBSD: patch-deps_v8_src_x64_lithium-codegen-x64_cc,v 1.2 2011/04/28 22:02:44 jasper Exp $ ---- deps/v8/src/x64/lithium-codegen-x64.cc.orig Sat Apr 23 02:06:25 2011 -+++ deps/v8/src/x64/lithium-codegen-x64.cc Thu Apr 28 23:02:42 2011 -@@ -1242,7 +1242,7 @@ void LCodeGen::DoBranch(LBranch* instr) { - __ j(equal, true_label); - __ CompareRoot(reg, Heap::kFalseValueRootIndex); - __ j(equal, false_label); -- __ SmiCompare(reg, Smi::FromInt(0)); -+ __ Cmp(reg, Smi::FromInt(0)); - __ j(equal, false_label); - __ JumpIfSmi(reg, true_label); - Index: patches/patch-deps_v8_src_x64_macro-assembler-x64_cc =================================================================== RCS file: patches/patch-deps_v8_src_x64_macro-assembler-x64_cc diff -N patches/patch-deps_v8_src_x64_macro-assembler-x64_cc --- patches/patch-deps_v8_src_x64_macro-assembler-x64_cc 30 Mar 2011 19:54:29 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,124 +0,0 @@ -$OpenBSD: patch-deps_v8_src_x64_macro-assembler-x64_cc,v 1.1 2011/03/30 19:54:29 jasper Exp $ ---- deps/v8/src/x64/macro-assembler-x64.cc.orig Sat Mar 26 09:48:02 2011 -+++ deps/v8/src/x64/macro-assembler-x64.cc Wed Mar 30 21:22:01 2011 -@@ -111,7 +111,7 @@ void MacroAssembler::RecordWrite(Register object, - ASSERT(!object.is(rsi) && !value.is(rsi) && !index.is(rsi)); - - // First, check if a write barrier is even needed. The tests below -- // catch stores of Smis and stores into young gen. -+ // catch stores of smis and stores into young gen. - Label done; - JumpIfSmi(value, &done); - -@@ -140,7 +140,7 @@ void MacroAssembler::RecordWrite(Register object, - ASSERT(!object.is(rsi) && !value.is(rsi) && !address.is(rsi)); - - // First, check if a write barrier is even needed. The tests below -- // catch stores of Smis and stores into young gen. -+ // catch stores of smis and stores into young gen. - Label done; - JumpIfSmi(value, &done); - -@@ -824,12 +824,26 @@ void MacroAssembler::SmiTest(Register src) { - } - - --void MacroAssembler::SmiCompare(Register dst, Register src) { -- cmpq(dst, src); -+void MacroAssembler::SmiCompare(Register smi1, Register smi2) { -+ if (FLAG_debug_code) { -+ AbortIfNotSmi(smi1); -+ AbortIfNotSmi(smi2); -+ } -+ cmpq(smi1, smi2); - } - - - void MacroAssembler::SmiCompare(Register dst, Smi* src) { -+ if (FLAG_debug_code) { -+ AbortIfNotSmi(dst); -+ } -+ // Actually, knowing the register is a smi doesn't enable any optimizations -+ // with the current tagging scheme. -+ Cmp(dst, src); -+} -+ -+ -+void MacroAssembler::Cmp(Register dst, Smi* src) { - ASSERT(!dst.is(kScratchRegister)); - if (src->value() == 0) { - testq(dst, dst 100 43657 100 43657 0 0 92882 0 --:--:-- --:--:-- --:--:-- 213k ); -@@ -841,20 +855,41 @@ void MacroAssembler::SmiCompare(Register dst, Smi* src - - - void MacroAssembler::SmiCompare(Register dst, const Operand& src) { -+ if (FLAG_debug_code) { -+ AbortIfNotSmi(dst); -+ AbortIfNotSmi(src); -+ } - cmpq(dst, src); - } - - - void MacroAssembler::SmiCompare(const Operand& dst, Register src) { -+ if (FLAG_debug_code) { -+ AbortIfNotSmi(dst); -+ AbortIfNotSmi(src); -+ } - cmpq(dst, src); - } - - - void MacroAssembler::SmiCompare(const Operand& dst, Smi* src) { -+ if (FLAG_debug_code) { -+ AbortIfNotSmi(dst); -+ } - cmpl(Operand(dst, kSmiShift / kBitsPerByte), Immediate(src->value())); - } - - -+void MacroAssembler::Cmp(const Operand& dst, Smi* src) { -+ // The Operand cannot use the smi register, since we may use the scratch -+ // register to get around the lack of 64 bit immediates in the instruction -+ // set. -+ Register smi_reg = GetSmiConstant(src); -+ ASSERT(!dst.AddressUsesRegister(smi_reg)); -+ cmpq(dst, smi_reg); -+} -+ -+ - void MacroAssembler::SmiCompareInteger32(const Operand& dst, Register src) { - cmpl(Operand(dst, kSmiShift / kBitsPerByte), src); - } -@@ -1339,7 +1374,7 @@ void MacroAssembler::Move(const Operand& dst, Handle<O - - void MacroAssembler::Cmp(Register dst, Handle<Object> source) { - if (source->IsSmi()) { -- SmiCompare(dst, Smi::cast(*source)); -+ Cmp(dst, Smi::cast(*source)); - } else { - Move(kScratchRegister, source); - cmpq(dst, kScratchRegister); -@@ -1349,7 +1384,7 @@ void MacroAssembler::Cmp(Register dst, Handle<Object> - - void MacroAssembler::Cmp(const Operand& dst, Handle<Object> source) { - if (source->IsSmi()) { -- SmiCompare(dst, Smi::cast(*source)); -+ Cmp(dst, Smi::cast(*source)); - } else { - ASSERT(source->IsHeapObject()); - movq(kScratchRegister, source, RelocInfo::EMBEDDED_OBJECT); -@@ -1719,7 +1754,12 @@ void MacroAssembler::AbortIfSmi(Register object) { - - - void MacroAssembler::AbortIfNotSmi(Register object) { -- NearLabel ok; -+ Condition is_smi = CheckSmi(object); -+ Assert(is_smi, "Operand is not a smi"); -+} -+ -+ -+void MacroAssembler::AbortIfNotSmi(const Operand& object) { - Condition is_smi = CheckSmi(object); - Assert(is_smi, "Operand is not a smi"); - } Index: patches/patch-deps_v8_src_x64_macro-assembler-x64_h =================================================================== RCS file: patches/patch-deps_v8_src_x64_macro-assembler-x64_h diff -N patches/patch-deps_v8_src_x64_macro-assembler-x64_h --- patches/patch-deps_v8_src_x64_macro-assembler-x64_h 30 Mar 2011 19:54:29 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,32 +0,0 @@ -$OpenBSD: patch-deps_v8_src_x64_macro-assembler-x64_h,v 1.1 2011/03/30 19:54:29 jasper Exp $ ---- deps/v8/src/x64/macro-assembler-x64.h.orig Sat Mar 26 09:48:02 2011 -+++ deps/v8/src/x64/macro-assembler-x64.h Wed Mar 30 21:22:09 2011 -@@ -263,8 +263,9 @@ class MacroAssembler: public Assembler { - int power); - - -- // Simple comparison of smis. -- void SmiCompare(Register dst, Register src); -+ // Simple comparison of smis. Both sides must be known smis to use these, -+ // otherwise use Cmp. -+ void SmiCompare(Register smi1, Register smi2); - void SmiCompare(Register dst, Smi* src); - void SmiCompare(Register dst, const Operand& src); - void SmiCompare(const Operand& dst, Register src); -@@ -594,6 +595,8 @@ class MacroAssembler: public Assembler { - void Move(const Operand& dst, Handle<Object> source); - void Cmp(Register dst, Handle<Object> source); - void Cmp(const Operand& dst, Handle<Object> source); -+ void Cmp(Register dst, Smi* src); -+ void Cmp(const Operand& dst, Smi* src); - void Push(Handle<Object> source); - - // Emit code to discard a non-negative number of pointer-sized elements -@@ -667,6 +670,7 @@ class MacroAssembler: public Assembler { - - // Abort execution if argument is not a smi. Used in debug code. - void AbortIfNotSmi(Register object); -+ void AbortIfNotSmi(const Operand& object); - - // Abort execution if argument is a string. Used in debug code. - void AbortIfNotString(Register object); Index: patches/patch-tools_wafadmin_Tools_python_py =================================================================== RCS file: /cvs/ports/www/node/patches/patch-tools_wafadmin_Tools_python_py,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 patch-tools_wafadmin_Tools_python_py --- patches/patch-tools_wafadmin_Tools_python_py 28 Dec 2010 18:19:28 -0000 1.1.1.1 +++ patches/patch-tools_wafadmin_Tools_python_py 16 Nov 2011 13:27:07 -0000 @@ -1,6 +1,6 @@ -$OpenBSD: patch-tools_wafadmin_Tools_python_py,v 1.1.1.1 2010/12/28 18:19:28 jasper Exp $ ---- tools/wafadmin/Tools/python.py.orig Sun Oct 24 23:45:39 2010 -+++ tools/wafadmin/Tools/python.py Fri Oct 29 12:05:02 2010 +$OpenBSD$ +--- tools/wafadmin/Tools/python.py.orig Wed Nov 16 13:53:19 2011 ++++ tools/wafadmin/Tools/python.py Wed Nov 16 13:54:02 2011 @@ -374,7 +374,7 @@ def detect(conf): if not conf.env.PYTHON: conf.env.PYTHON = sys.executable Index: patches/patch-wscript =================================================================== RCS file: /cvs/ports/www/node/patches/patch-wscript,v retrieving revision 1.8 diff -u -p -r1.8 patch-wscript --- patches/patch-wscript 29 Jun 2011 18:44:07 -0000 1.8 +++ patches/patch-wscript 16 Nov 2011 13:27:07 -0000 @@ -1,14 +1,7 @@ -$OpenBSD: patch-wscript,v 1.8 2011/06/29 18:44:07 jasper Exp $ - -- OpenBSD can also use libexecinfo. -- Don't append EV_MULTIPLICITY_EV was it breaks the build with using the - shared libev with an undefined reference to ev_rt_now. -- Don't build with -O3. -- Adjust some paths. - ---- wscript.orig Wed Jun 29 13:24:02 2011 -+++ wscript Wed Jun 29 20:25:09 2011 -@@ -276,7 +276,7 @@ def configure(conf): +$OpenBSD$ +--- wscript.orig Tue Nov 15 09:23:31 2011 ++++ wscript Tue Nov 15 09:26:12 2011 +@@ -301,7 +301,7 @@ def configure(conf): if Options.options.efence: conf.check(lib='efence', libpath=['/usr/lib', '/usr/local/lib'], uselib_store='EFENCE') @@ -17,38 +10,12 @@ $OpenBSD: patch-wscript,v 1.8 2011/06/29 if not conf.check(lib="execinfo", includes=['/usr/include', '/usr/local/include'], libpath=['/usr/lib', '/usr/local/lib'], -@@ -463,8 +463,10 @@ def configure(conf): - # LFS - conf.env.append_value('CPPFLAGS', '-D_LARGEFILE_SOURCE') - conf.env.append_value('CPPFLAGS', '-D_FILE_OFFSET_BITS=64') -- conf.env.append_value('CPPFLAGS', '-DEV_MULTIPLICITY=0') - -+# Disabled, see http://comments.gmane.org/gmane.comp.lang.javascript.nodejs/18924 -+# conf.env.append_value('CPPFLAGS', '-DEV_MULTIPLICITY=0') -+ - # Makes select on windows support more than 64 FDs - if sys.platform.startswith("win32"): - conf.env.append_value('CPPFLAGS', '-DFD_SETSIZE=1024'); -@@ -533,7 +535,7 @@ def configure(conf): +@@ -529,7 +529,7 @@ def configure(conf): # Configure default variant - conf.setenv('default') + conf.setenv('Release') - default_compile_flags = ['-g', '-O3'] + default_compile_flags = ['-g'] conf.env.append_value('CCFLAGS', default_compile_flags) conf.env.append_value('CXXFLAGS', default_compile_flags) conf.write_config_header("config.h") -@@ -902,11 +904,10 @@ def build(bld): - # Only install the man page if it exists. - # Do 'make doc install' to build and install it. - if os.path.exists('doc/node.1'): -- bld.install_files('${PREFIX}/share/man/man1/', 'doc/node.1') -+ bld.install_files('${PREFIX}/man/man1/', 'doc/node.1') - - bld.install_files('${PREFIX}/bin/', 'tools/node-waf', chmod=0755) -- bld.install_files('${LIBDIR}/node/wafadmin', 'tools/wafadmin/*.py') -- bld.install_files('${LIBDIR}/node/wafadmin/Tools', 'tools/wafadmin/Tools/*.py') -+ bld.install_files('${LIBDIR}/node/wafadmin', 'tools/wafadmin/Node.py') - - # create a pkg-config(1) file - node_conf = bld.new_task_gen('subst', before="cxx") Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/www/node/pkg/PLIST,v retrieving revision 1.2 diff -u -p -r1.2 PLIST --- pkg/PLIST 30 Mar 2011 19:54:29 -0000 1.2 +++ pkg/PLIST 16 Nov 2011 13:27:07 -0000 @@ -1,15 +1,27 @@ -@comment $OpenBSD: PLIST,v 1.2 2011/03/30 19:54:29 jasper Exp $ +@comment $OpenBSD$ @bin bin/node bin/node-waf include/node/ +include/node/ares.h +include/node/ares_version.h +include/node/c-ares/ +include/node/c-ares/ares.h +include/node/c-ares/ares_version.h include/node/config.h -include/node/eio.h +include/node/ev/ include/node/node.h include/node/node_buffer.h include/node/node_config.h -include/node/node_events.h include/node/node_object_wrap.h include/node/node_version.h +include/node/uv-private/ +include/node/uv-private/eio.h +include/node/uv-private/ev.h +include/node/uv-private/ngx-queue.h +include/node/uv-private/tree.h +include/node/uv-private/uv-unix.h +include/node/uv-private/uv-win.h +include/node/uv.h include/node/v8-debug.h include/node/v8-preparser.h include/node/v8-profiler.h @@ -18,6 +30,54 @@ include/node/v8.h include/node/v8stdint.h lib/node/ lib/node/wafadmin/ +lib/node/wafadmin/Build.py +lib/node/wafadmin/Configure.py +lib/node/wafadmin/Constants.py +lib/node/wafadmin/Environment.py +lib/node/wafadmin/Logs.py lib/node/wafadmin/Node.py -lib/pkgconfig/nodejs.pc +lib/node/wafadmin/Options.py +lib/node/wafadmin/Runner.py +lib/node/wafadmin/Scripting.py +lib/node/wafadmin/Task.py +lib/node/wafadmin/TaskGen.py +lib/node/wafadmin/Tools/ +lib/node/wafadmin/Tools/__init__.py +lib/node/wafadmin/Tools/ar.py +lib/node/wafadmin/Tools/cc.py +lib/node/wafadmin/Tools/ccroot.py +lib/node/wafadmin/Tools/compiler_cc.py +lib/node/wafadmin/Tools/compiler_cxx.py +lib/node/wafadmin/Tools/compiler_d.py +lib/node/wafadmin/Tools/config_c.py +lib/node/wafadmin/Tools/cxx.py +lib/node/wafadmin/Tools/d.py +lib/node/wafadmin/Tools/dmd.py +lib/node/wafadmin/Tools/gas.py +lib/node/wafadmin/Tools/gcc.py +lib/node/wafadmin/Tools/gdc.py +lib/node/wafadmin/Tools/gnu_dirs.py +lib/node/wafadmin/Tools/gob2.py +lib/node/wafadmin/Tools/gxx.py +lib/node/wafadmin/Tools/icc.py +lib/node/wafadmin/Tools/icpc.py +lib/node/wafadmin/Tools/intltool.py +lib/node/wafadmin/Tools/libtool.py +lib/node/wafadmin/Tools/misc.py +lib/node/wafadmin/Tools/nasm.py +lib/node/wafadmin/Tools/node_addon.py +lib/node/wafadmin/Tools/osx.py +lib/node/wafadmin/Tools/preproc.py +lib/node/wafadmin/Tools/python.py +lib/node/wafadmin/Tools/suncc.py +lib/node/wafadmin/Tools/suncxx.py +lib/node/wafadmin/Tools/unittestw.py +lib/node/wafadmin/Tools/winres.py +lib/node/wafadmin/Tools/xlc.py +lib/node/wafadmin/Tools/xlcxx.py +lib/node/wafadmin/Utils.py +lib/node/wafadmin/__init__.py +lib/node/wafadmin/ansiterm.py +lib/node/wafadmin/pproc.py +lib/node/wafadmin/py3kfixes.py @man man/man1/node.1