This project has been updated with an improved API: https://github.com/ry/v8worker2
The code here will not be updated.
Minimal golang binding to V8
License: MIT License
This project has been updated with an improved API: https://github.com/ry/v8worker2
The code here will not be updated.
On Ubuntu 14.04 AMD64 platform, make to build v8 without problem, hit issue when install
$ go install
# github.com/ry/v8worker
./binding.cc: In member function 'virtual void* ArrayBufferAllocator::Allocate(size_t)':
./binding.cc:30:56: error: 'memset' was not declared in this scope
return data == NULL ? data : memset(data, 0, length);
^
$git checkout HEAD^^
$ go install
# github.com/ry/v8worker
./v8/out/native/obj.target/v8_libbase/src/base/logging.o: In function `v8::base::DumpBacktrace()':
../src/base/logging.cc:(.text._ZN2v84base13DumpBacktraceEv+0x67): undefined reference to `dladdr'
collect2: error: ld returned 1 exit status
Apply patch from mmurray@177013e fixed the dladdr issue.
On Mac 10.9, 'make' is completed, but 'make install' is failed with error massage as below:
./binding.cc:6:10: fatal error: 'v8.h' file not found
How to set cflags -I./v8.include for this?
hey @ry I am trying to make v8worker
work with http.Handler
it works for first request then it breaks, any thoughts about this?, thanks in advance.
package main
import (
"log"
"net/http"
"github.com/ry/v8worker"
)
var (
JSCode string
)
func init() {
JSCode = `
$send("hello world");
`
}
func rootHandler(w http.ResponseWriter, r *http.Request) {
V8Worker := v8worker.New(func(msg v8worker.Message) {
log.Printf("msg: %v", msg)
})
if err := V8Worker.Load("code.js", JSCode); err != nil {
log.Printf("failed to load js file. error: %v", err)
}
w.Write([]byte("ok"))
}
func main() {
http.HandleFunc("/", rootHandler)
http.ListenAndServe(":8080", nil)
}
> go run main.go
2015/04/06 22:49:26 msg: hello world
#
# Fatal error in ../src/v8.cc, line 107
# Check failed: !platform_.
#
==== C stack trace ===============================
1: V8_Fatal
2: v8::internal::V8::InitializePlatform(v8::Platform*)
3: v8::V8::InitializePlatform(v8::Platform*)
4: worker_new
5: _cgo_1173bb0b0aa9_Cfunc_worker_new
6: runtime.asmcgocall
SIGILL: illegal instruction
PC=0x4006f61
signal arrived during cgo execution
goroutine 21 [syscall]:
runtime.cgocall(0x4001610, 0x5cf7b50)
/usr/local/Cellar/go/1.3.3/libexec/src/pkg/runtime/cgocall.c:143 +0xe5 fp=0x5cf7b38 sp=0x5cf7af0
github.com/ry/v8worker._Cfunc_worker_new(0x4001a20, 0xc2080008c0, 0x4845650)
github.com/ry/v8worker/_obj/_cgo_defun.c:88 +0x31 fp=0x5cf7b50 sp=0x5cf7b38
github.com/ry/v8worker.New(0x4c88510, 0x485eb31)
/Users/chris/go_packages/src/github.com/ry/v8worker/worker.go:45 +0x5e fp=0x5cf7b80 sp=0x5cf7b50
main.rootHandler(0x5e118a0, 0xc208062460, 0xc208038ea0)
/Users/chris/Desktop/ok/v8workerdemo/main.go:23 +0x27 fp=0x5cf7c00 sp=0x5cf7b80
net/http.HandlerFunc.ServeHTTP(0x4c88518, 0x5e118a0, 0xc208062460, 0xc208038ea0)
/usr/local/Cellar/go/1.3.3/libexec/src/pkg/net/http/server.go:1235 +0x40 fp=0x5cf7c20 sp=0x5cf7c00
net/http.(*ServeMux).ServeHTTP(0xc208022600, 0x5e118a0, 0xc208062460, 0xc208038ea0)
/usr/local/Cellar/go/1.3.3/libexec/src/pkg/net/http/server.go:1511 +0x1a3 fp=0x5cf7c98 sp=0x5cf7c20
net/http.serverHandler.ServeHTTP(0xc208004240, 0x5e118a0, 0xc208062460, 0xc208038ea0)
/usr/local/Cellar/go/1.3.3/libexec/src/pkg/net/http/server.go:1673 +0x19f fp=0x5cf7cf0 sp=0x5cf7c98
net/http.(*conn).serve(0xc208060280)
/usr/local/Cellar/go/1.3.3/libexec/src/pkg/net/http/server.go:1174 +0xa7e fp=0x5cf7fa0 sp=0x5cf7cf0
runtime.goexit()
/usr/local/Cellar/go/1.3.3/libexec/src/pkg/runtime/proc.c:1445 fp=0x5cf7fa8 sp=0x5cf7fa0
created by net/http.(*Server).Serve
/usr/local/Cellar/go/1.3.3/libexec/src/pkg/net/http/server.go:1721 +0x313
goroutine 16 [IO wait]:
net.runtime_pollWait(0x5e11660, 0x72, 0x0)
/usr/local/Cellar/go/1.3.3/libexec/src/pkg/runtime/netpoll.goc:146 +0x66
net.(*pollDesc).Wait(0xc20803a0d0, 0x72, 0x0, 0x0)
/usr/local/Cellar/go/1.3.3/libexec/src/pkg/net/fd_poll_runtime.go:84 +0x46
net.(*pollDesc).WaitRead(0xc20803a0d0, 0x0, 0x0)
/usr/local/Cellar/go/1.3.3/libexec/src/pkg/net/fd_poll_runtime.go:89 +0x42
net.(*netFD).accept(0xc20803a070, 0x4c88638, 0x0, 0x5e103f0, 0x23)
/usr/local/Cellar/go/1.3.3/libexec/src/pkg/net/fd_unix.go:419 +0x343
net.(*TCPListener).AcceptTCP(0xc208042018, 0x4865b33, 0x0, 0x0)
/usr/local/Cellar/go/1.3.3/libexec/src/pkg/net/tcpsock_posix.go:234 +0x5d
net/http.tcpKeepAliveListener.Accept(0xc208042018, 0x0, 0x0, 0x0, 0x0)
/usr/local/Cellar/go/1.3.3/libexec/src/pkg/net/http/server.go:1947 +0x4b
net/http.(*Server).Serve(0xc208004240, 0x5e11710, 0xc208042018, 0x0, 0x0)
/usr/local/Cellar/go/1.3.3/libexec/src/pkg/net/http/server.go:1698 +0x91
net/http.(*Server).ListenAndServe(0xc208004240, 0x0, 0x0)
/usr/local/Cellar/go/1.3.3/libexec/src/pkg/net/http/server.go:1688 +0x14d
net/http.ListenAndServe(0x4c0aaf0, 0x5, 0x0, 0x0, 0x0, 0x0)
/usr/local/Cellar/go/1.3.3/libexec/src/pkg/net/http/server.go:1778 +0x79
main.main()
/Users/chris/Desktop/ok/v8workerdemo/main.go:32 +0x64
goroutine 19 [finalizer wait]:
runtime.park(0x4837650, 0x5026a80, 0x500e229)
/usr/local/Cellar/go/1.3.3/libexec/src/pkg/runtime/proc.c:1369 +0x89
runtime.parkunlock(0x5026a80, 0x500e229)
/usr/local/Cellar/go/1.3.3/libexec/src/pkg/runtime/proc.c:1385 +0x3b
runfinq()
/usr/local/Cellar/go/1.3.3/libexec/src/pkg/runtime/mgc0.c:2644 +0xcf
runtime.goexit()
/usr/local/Cellar/go/1.3.3/libexec/src/pkg/runtime/proc.c:1445
goroutine 17 [syscall]:
runtime.goexit()
/usr/local/Cellar/go/1.3.3/libexec/src/pkg/runtime/proc.c:1445
rax 0x0
rbx 0x5cf7b50
rcx 0x0
rdx 0x7fff7c8c11f8
rdi 0x110000001203
rsi 0x120000001200
rbp 0xb0186b40
rsp 0xb0186b40
r8 0xb0186b00
r9 0xb0187000
r10 0x0
r11 0x246
r12 0xc2080008c0
r13 0x4b67060
r14 0xc208022cb0
r15 0x4001a20
rip 0x4006f61
rflags 0x10202
cs 0x2b
fs 0x0
gs 0x0
exit status
Not sure if this is supposed to be a feature; but the window
object is not available to the loaded script so neither are the functions setTimeout
, setTimer
, atob
or btoa
available
One of the amazing things about Go is how fast it compiles. Since installing the great v8worker lib, my buildย time has slowed from <1 second to around 20 seconds. This really slows down the TDD workflow that I normally use, because I'm waiting 20 seconds for a unit test to run.
Any suggestions on how to avoid recompiling the v8worker every time I make the project?
worker1 := v8worker.New(func(msg Message) {})
worker2 := v8worker.New(func(msg Message) {}) // <-- segfault
Cause is V8::InitializePlatform() being called in v8platform.New()... it should only ever be called once.
Probably the best thing to do is wrap it in sync.Once
I'm running into a memory problem with v8worker when running this test program on go version go1.6 linux/amd64. It's replicating an issue that I see when many workers are created and 'destroyed' so that each script runs in a clean environment.
package main
import (
"fmt"
jsvm "github.com/ry/v8worker"
)
func main() {
var i int
for {
i++
fmt.Printf("Running, %d time\n", i)
run()
}
}
func run() {
vm := jsvm.New(nil, nil)
err := vm.Load("mytest.js", `
// Do something
var something = "Simple JavaScript";
`)
// Check for exceptions
if err != nil {
fmt.Println("Error:", err)
return
}
}
Error:
.......
Running, 2345 time
Running, 2346 time
Running, 2347 time
#
# Fatal error in heap setup
# Allocation failed - process out of memory
#
SIGILL: illegal instruction
PC=0xbfbbff m=0
signal arrived during cgo execution
goroutine 1 [syscall, locked to thread]:
runtime.cgocall(0x6e0ac0, 0xc82006fd80, 0x0)
/opt/go/src/runtime/cgocall.go:123 +0x11b fp=0xc82006fd40 sp=0xc82006fd10
github.com/ry/v8worker._Cfunc_worker_new(0x92a, 0x0)
github.com/ry/v8worker/_obj/_cgo_gotypes.go:139 +0x42 fp=0xc82006fd80 sp=0xc82006fd40
github.com/ry/v8worker.New(0x0, 0x0, 0x20)
/opt/gopkg/src/github.com/ry/v8worker/worker.go:94 +0x12a fp=0xc82006fde0 sp=0xc82006fd80
main.run()
/opt/tmp/jsv8worker.go:27 +0x35 fp=0xc82006fe88 sp=0xc82006fde0
main.main()
/opt/tmp/jsv8worker.go:22 +0x1d7 fp=0xc82006ff50 sp=0xc82006fe88
runtime.main()
/opt/go/src/runtime/proc.go:188 +0x2b0 fp=0xc82006ffa0 sp=0xc82006ff50
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1998 +0x1 fp=0xc82006ffa8 sp=0xc82006ffa0
goroutine 17 [syscall, locked to thread]:
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1998 +0x1
goroutine 5 [syscall]:
os/signal.signal_recv(0x0)
/opt/go/src/runtime/sigqueue.go:116 +0x132
os/signal.loop()
/opt/go/src/os/signal/signal_unix.go:22 +0x18
created by os/signal.init.1
/opt/go/src/os/signal/signal_unix.go:28 +0x37
goroutine 6 [chan receive]:
github.com/davecheney/profile.Start.func4(0xc820010210)
/opt/gopkg/src/github.com/davecheney/profile/profile.go:159 +0xef
created by github.com/davecheney/profile.Start
/opt/gopkg/src/github.com/davecheney/profile/profile.go:165 +0xf45
goroutine 18 [select, locked to thread]:
runtime.gopark(0xc96490, 0xc820046728, 0xc603e0, 0x6, 0x18, 0x2)
/opt/go/src/runtime/proc.go:262 +0x163
runtime.selectgoImpl(0xc820046728, 0x0, 0x18)
/opt/go/src/runtime/select.go:392 +0xa67
runtime.selectgo(0xc820046728)
/opt/go/src/runtime/select.go:215 +0x12
runtime.ensureSigM.func1()
/opt/go/src/runtime/signal1_unix.go:279 +0x358
runtime.goexit()
/opt/go/src/runtime/asm_amd64.s:1998 +0x1
rax 0x4e
rbx 0x32ae8020
rcx 0x7f629901b88d
rdx 0x0
rdi 0x7ffea7692200
rsi 0x0
rbp 0x0
rsp 0x7ffea7694a00
r8 0x7f629a365780
r9 0x20737365636f7270
r10 0x7f62992ecbe0
r11 0x0
r12 0x7ffea76951a0
r13 0x32ae8040
r14 0xcaf1b0
r15 0x7ffea76953b0
rip 0xbfbbff
rflags 0x10202
cs 0x33
fs 0x0
gs 0x0
exit status 2
Is this access pattern allowed / supported ? or is the program responsible for synchronzing this (e.g. mutex)?
any ideas how to kill a worker? (from the TODO list)
thank you for creating this package.
I'm not an expert at V8 or Go, so forgive me if this is naive, but it seems like one of the pain points of v8worker is that it requires that users run make
and therefore doesn't build with a simple go build
(as seems to be standard in Go projects these days). This means that downstream projects can't use go build
for their build system, as well as their downstream projects, and so on.
If you're open to it, I'd like to explore alternatives to the current solution. If any of them sound acceptable, I can do the legwork myself to implement it. Below are a few as I see them, please correct me if I'm wrong on something -- like I said, new to go, new to V8.
brew
, apt-get
, etc. Labor-intensive, and annoying to maintain, but possibly worth it. Nonstandard for go
, but at least it is compatible with go build
and involves only a few more commands, to get the packages themselves.Open to other suggestions as well. Let me know what you think.
Hi Ryan!
Check out our last change for worker:
getblank@9a5963b#diff-0003efb78f2f135c88ca5431b8353b2cR261
It did fix memory leak in SendSync
I'm trying to cross compile v8worker for multiple platforms via gox (https://github.com/mitchellh/gox) but it's complaining that cgo nor SWIG is used.
I don't think it's a cgo nor SWIG issue but it probably requires some changes to the Makefile.
gox "github.com/ry/v8worker/examples/commonjs"
Number of parallel builds: 31
--> netbsd/arm: github.com/ry/v8worker/examples/commonjs
--> freebsd/amd64: github.com/ry/v8worker/examples/commonjs
--> linux/386: github.com/ry/v8worker/examples/commonjs
--> windows/amd64: github.com/ry/v8worker/examples/commonjs
--> darwin/amd64: github.com/ry/v8worker/examples/commonjs
--> freebsd/386: github.com/ry/v8worker/examples/commonjs
--> darwin/386: github.com/ry/v8worker/examples/commonjs
--> openbsd/amd64: github.com/ry/v8worker/examples/commonjs
--> windows/386: github.com/ry/v8worker/examples/commonjs
--> openbsd/386: github.com/ry/v8worker/examples/commonjs
--> linux/amd64: github.com/ry/v8worker/examples/commonjs
--> linux/arm: github.com/ry/v8worker/examples/commonjs
--> netbsd/amd64: github.com/ry/v8worker/examples/commonjs
--> freebsd/arm: github.com/ry/v8worker/examples/commonjs
--> netbsd/386: github.com/ry/v8worker/examples/commonjs
14 errors occurred:
--> freebsd/amd64 error: exit status 1
Stderr: can't build package github.com/ry/v8worker because it contains C++ files (binding.cc) but it's not using cgo nor SWIG
--> openbsd/amd64 error: exit status 1
Stderr: can't build package github.com/ry/v8worker because it contains C++ files (binding.cc) but it's not using cgo nor SWIG
--> darwin/amd64 error: exit status 1
Stderr: can't build package github.com/ry/v8worker because it contains C++ files (binding.cc) but it's not using cgo nor SWIG
--> netbsd/amd64 error: exit status 1
Stderr: can't build package github.com/ry/v8worker because it contains C++ files (binding.cc) but it's not using cgo nor SWIG
--> windows/amd64 error: exit status 1
Stderr: can't build package github.com/ry/v8worker because it contains C++ files (binding.cc) but it's not using cgo nor SWIG
--> linux/386 error: exit status 1
Stderr: can't build package github.com/ry/v8worker because it contains C++ files (binding.cc) but it's not using cgo nor SWIG
--> netbsd/386 error: exit status 1
Stderr: can't build package github.com/ry/v8worker because it contains C++ files (binding.cc) but it's not using cgo nor SWIG
--> openbsd/386 error: exit status 1
Stderr: can't build package github.com/ry/v8worker because it contains C++ files (binding.cc) but it's not using cgo nor SWIG
--> freebsd/arm error: exit status 1
Stderr: can't build package github.com/ry/v8worker because it contains C++ files (binding.cc) but it's not using cgo nor SWIG
--> netbsd/arm error: exit status 1
Stderr: can't build package github.com/ry/v8worker because it contains C++ files (binding.cc) but it's not using cgo nor SWIG
--> darwin/386 error: exit status 1
Stderr: can't build package github.com/ry/v8worker because it contains C++ files (binding.cc) but it's not using cgo nor SWIG
--> freebsd/386 error: exit status 1
Stderr: can't build package github.com/ry/v8worker because it contains C++ files (binding.cc) but it's not using cgo nor SWIG
--> linux/arm error: exit status 1
Stderr: can't build package github.com/ry/v8worker because it contains C++ files (binding.cc) but it's not using cgo nor SWIG
--> windows/386 error: exit status 1
Stderr: can't build package github.com/ry/v8worker because it contains C++ files (binding.cc) but it's not using cgo nor SWIG
Any suggestions?
Hello,
I have some questions.
I dream of doing something like:
Could that be made?
When I build my tiny project the binary is over 100M. I read that with gcc V8 will be under 10M but I understand my binary has everything linked statically. I'm a total noob with go, haven't really done anything with c++ and don't know where to start. Any info is appreciated.
Those $rect, $print etc. are fairly nice but I'd prefer these names customisable, perhaps having them inside an object (foo.print, foo.send, ...). Looking at the code this seems achievable but do you think this is a totally retarded idea?
Anyways, thanks for creating this fine tool. I will have lots of fun with it.
Today, at FOSDEM in Brussel, I learned about a new compiler change regarding the use of pointers in cgo. Wondering if this would affect v8worker, I tried building the project using 1.6rc1. I hope we can find a way to play by the new rules.
panic: runtime error: cgo argument has Go pointer to Go pointer [recovered]
panic: runtime error: cgo argument has Go pointer to Go pointer
goroutine 5 [running]:
testing.tRunner.func1(0xc820090000)
/usr/local/go/src/testing/testing.go:467 +0x192
github.com/ry/v8worker._cgoCheckPointer0(0xb80740, 0xc82000a140, 0x0, 0x0, 0x0, 0x0)
github.com/ry/v8worker/_obj/_cgo_gotypes.go:58 +0x4d
github.com/ry/v8worker.New(0xc8200105b0, 0xc8200105c0, 0xc820012390)
/go/src/github.com/ry/v8worker/worker.go:70 +0xe2
bitbucket.org/emicklei/v8dispatcher.NewMessageDispatcher(0x0)
/go/src/bitbucket.org/emicklei/v8dispatcher/dispatcher.go:34 +0x18c
Hi
I've quickly tried simple benchmark for parallel execution, and I found
increasing GOMAXPROCS don't improve performance for v8 as expected.
Is this expected as v8 is running in single thread? or this can be improved?
nueno-mbp15:go_javascript[master *]$ GOMAXPROCS=1 go run benchmark.go
otto parallel test
otto parallel thread : 32.483853059s
v8 parallel test
v8 parallel thread : 64.419895ms
golang parallel test
golang parallel thread : 3.3833ms
nueno-mbp15:go_javascript[master *]$ GOMAXPROCS=8 go run benchmark.go
otto parallel test
otto parallel thread : 7.675539588s
v8 parallel test
v8 parallel thread : 74.098425ms
golang parallel test
golang parallel thread : 962.457ยตs
Here is my simple benchmark code
https://github.com/nati/fun/blob/master/go_javascript/benchmark.go
Hi
it is possible to pass a bunch of javascript code instead of file?
Thanks
This is a feature request.
A major use case for v8worker might be to load a node.js module (which may itself require more node modules as dependencies) to perform work, and then return the result back to golang. It would make v8worker much more useful if it has node module loading built in.
root@ubuntu:~/gostuff/src/github.com/ry/v8worker# make GYPFLAGS="-Dcomponent=shared_library"
...
Description: v8 javascript engine
Version: native
Cflags: -I/root/gostuff/src/github.com/ry/v8worker/v8/include -I/root/gostuff/src/github.com/ry/v8worker/v8/
Libs: -Wl,--start-group /root/gostuff/src/github.com/ry/v8worker/v8/out/native/obj.target/tools/gyp/libv8_libbase.a /root/gostuff/src/github.com/ry/v8worker/v8/out/native/obj.target/tools/gyp/libv8_base.a /root/gostuff/src/github.com/ry/v8worker/v8/out/native/obj.target/tools/gyp/libv8_libplatform.a /root/gostuff/src/github.com/ry/v8worker/v8/out/native/obj.target/tools/gyp/libv8_snapshot.a -Wl,--end-group -lrt -ldl'
go test -c
# github.com/ry/v8worker
./v8/out/native/obj.target/v8_base/src/api.o: In function `v8::V8::Initialize()':
../src/api.cc:(.text._ZN2v82V810InitializeEv+0x7): undefined reference to `v8::internal::ReadNatives()'
./v8/out/native/obj.target/v8_base/src/api.o: In function `v8::V8::Dispose()':
../src/api.cc:(.text._ZN2v82V87DisposeEv+0x7): undefined reference to `v8::internal::DisposeNatives()'
./v8/out/native/obj.target/v8_base/src/regexp/jsregexp.o: In function `v8::internal::AddUnicodeCaseEquivalents(v8::internal::RegExpCompiler*, v8::internal::ZoneList<v8::internal::CharacterRange>*)':
../src/regexp/jsregexp.cc:(.text._ZN2v88internal25AddUnicodeCaseEquivalentsEPNS0_14RegExpCompilerEPNS0_8ZoneListINS0_14CharacterRangeEEE+0x15): undefined reference to `uset_openEmpty_56'
../src/regexp/jsregexp.cc:(.text._ZN2v88internal25AddUnicodeCaseEquivalentsEPNS0_14RegExpCompilerEPNS0_8ZoneListINS0_14CharacterRangeEEE+0x3e): undefined reference to `uset_addRange_56'
../src/regexp/jsregexp.cc:(.text._ZN2v88internal25AddUnicodeCaseEquivalentsEPNS0_14RegExpCompilerEPNS0_8ZoneListINS0_14CharacterRangeEEE+0x5d): undefined reference to `uset_closeOver_56'
../src/regexp/jsregexp.cc:(.text._ZN2v88internal25AddUnicodeCaseEquivalentsEPNS0_14RegExpCompilerEPNS0_8ZoneListINS0_14CharacterRangeEEE+0x65): undefined reference to `uset_removeAllStrings_56'
../src/regexp/jsregexp.cc:(.text._ZN2v88internal25AddUnicodeCaseEquivalentsEPNS0_14RegExpCompilerEPNS0_8ZoneListINS0_14CharacterRangeEEE+0x6d): undefined reference to `uset_getItemCount_56'
../src/regexp/jsregexp.cc:(.text._ZN2v88internal25AddUnicodeCaseEquivalentsEPNS0_14RegExpCompilerEPNS0_8ZoneListINS0_14CharacterRangeEEE+0xca): undefined reference to `uset_getItem_56'
../src/regexp/jsregexp.cc:(.text._ZN2v88internal25AddUnicodeCaseEquivalentsEPNS0_14RegExpCompilerEPNS0_8ZoneListINS0_14CharacterRangeEEE+0x164): undefined reference to `uset_close_56'
./v8/out/native/obj.target/v8_base/src/regexp/regexp-macro-assembler.o: In function `v8::internal::RegExpMacroAssembler::CaseInsensitiveCompareUC16(unsigned char*, unsigned char*, unsigned long, v8::internal::Isolate*)':
../src/regexp/regexp-macro-assembler.cc:(.text._ZN2v88internal20RegExpMacroAssembler26CaseInsensitiveCompareUC16EPhS2_mPNS0_7IsolateE+0x25c): undefined reference to `u_foldCase_56'
../src/regexp/regexp-macro-assembler.cc:(.text._ZN2v88internal20RegExpMacroAssembler26CaseInsensitiveCompareUC16EPhS2_mPNS0_7IsolateE+0x268): undefined reference to `u_foldCase_56'
./v8/out/native/obj.target/v8_base/src/regexp/regexp-parser.o: In function `v8::internal::RegExpBuilder::AddCharacter(unsigned short)':
../src/regexp/regexp-parser.cc:(.text._ZN2v88internal13RegExpBuilder12AddCharacterEt+0x32): undefined reference to `uset_open_56'
../src/regexp/regexp-parser.cc:(.text._ZN2v88internal13RegExpBuilder12AddCharacterEt+0x42): undefined reference to `uset_closeOver_56'
../src/regexp/regexp-parser.cc:(.text._ZN2v88internal13RegExpBuilder12AddCharacterEt+0x4a): undefined reference to `uset_removeAllStrings_56'
../src/regexp/regexp-parser.cc:(.text._ZN2v88internal13RegExpBuilder12AddCharacterEt+0x52): undefined reference to `uset_size_56'
../src/regexp/regexp-parser.cc:(.text._ZN2v88internal13RegExpBuilder12AddCharacterEt+0x5d): undefined reference to `uset_close_56'
./v8/out/native/obj.target/v8_base/src/regexp/regexp-parser.o: In function `v8::internal::IsExactPropertyValueAlias(char const*, UProperty, int)':
../src/regexp/regexp-parser.cc:(.text._ZN2v88internal25IsExactPropertyValueAliasEPKc9UPropertyi+0x17): undefined reference to `u_getPropertyValueName_56'
../src/regexp/regexp-parser.cc:(.text._ZN2v88internal25IsExactPropertyValueAliasEPKc9UPropertyi+0x40): undefined reference to `u_getPropertyValueName_56'
./v8/out/native/obj.target/v8_base/src/regexp/regexp-parser.o: In function `v8::internal::LookupPropertyClass(UProperty, char const*, v8::internal::ZoneList<v8::internal::CharacterRange>*, v8::internal::Zone*)':
../src/regexp/regexp-parser.cc:(.text._ZN2v88internal19LookupPropertyClassE9UPropertyPKcPNS0_8ZoneListINS0_14CharacterRangeEEEPNS0_4ZoneE+0x1b): undefined reference to `u_getPropertyValueEnum_56'
../src/regexp/regexp-parser.cc:(.text._ZN2v88internal19LookupPropertyClassE9UPropertyPKcPNS0_8ZoneListINS0_14CharacterRangeEEEPNS0_4ZoneE+0x2e): undefined reference to `u_getPropertyValueName_56'
../src/regexp/regexp-parser.cc:(.text._ZN2v88internal19LookupPropertyClassE9UPropertyPKcPNS0_8ZoneListINS0_14CharacterRangeEEEPNS0_4ZoneE+0x5c): undefined reference to `u_getPropertyValueName_56'
../src/regexp/regexp-parser.cc:(.text._ZN2v88internal19LookupPropertyClassE9UPropertyPKcPNS0_8ZoneListINS0_14CharacterRangeEEEPNS0_4ZoneE+0x75): undefined reference to `uset_openEmpty_56'
../src/regexp/regexp-parser.cc:(.text._ZN2v88internal19LookupPropertyClassE9UPropertyPKcPNS0_8ZoneListINS0_14CharacterRangeEEEPNS0_4ZoneE+0x9a): undefined reference to `uset_applyIntPropertyValue_56'
../src/regexp/regexp-parser.cc:(.text._ZN2v88internal19LookupPropertyClassE9UPropertyPKcPNS0_8ZoneListINS0_14CharacterRangeEEEPNS0_4ZoneE+0xb7): undefined reference to `uset_isEmpty_56'
../src/regexp/regexp-parser.cc:(.text._ZN2v88internal19LookupPropertyClassE9UPropertyPKcPNS0_8ZoneListINS0_14CharacterRangeEEEPNS0_4ZoneE+0xca): undefined reference to `uset_removeAllStrings_56'
../src/regexp/regexp-parser.cc:(.text._ZN2v88internal19LookupPropertyClassE9UPropertyPKcPNS0_8ZoneListINS0_14CharacterRangeEEEPNS0_4ZoneE+0xd2): undefined reference to `uset_getItemCount_56'
../src/regexp/regexp-parser.cc:(.text._ZN2v88internal19LookupPropertyClassE9UPropertyPKcPNS0_8ZoneListINS0_14CharacterRangeEEEPNS0_4ZoneE+0x129): undefined reference to `uset_getItem_56'
../src/regexp/regexp-parser.cc:(.text._ZN2v88internal19LookupPropertyClassE9UPropertyPKcPNS0_8ZoneListINS0_14CharacterRangeEEEPNS0_4ZoneE+0x1c3): undefined reference to `uset_close_56'
./v8/out/native/obj.target/v8_base/src/regexp/regexp-parser.o: In function `v8::internal::RegExpBuilder::AddTrailSurrogate(unsigned short)':
../src/regexp/regexp-parser.cc:(.text._ZN2v88internal13RegExpBuilder17AddTrailSurrogateEt+0x5c): undefined reference to `uset_open_56'
../src/regexp/regexp-parser.cc:(.text._ZN2v88internal13RegExpBuilder17AddTrailSurrogateEt+0x6c): undefined reference to `uset_closeOver_56'
../src/regexp/regexp-parser.cc:(.text._ZN2v88internal13RegExpBuilder17AddTrailSurrogateEt+0x74): undefined reference to `uset_removeAllStrings_56'
../src/regexp/regexp-parser.cc:(.text._ZN2v88internal13RegExpBuilder17AddTrailSurrogateEt+0x7c): undefined reference to `uset_size_56'
../src/regexp/regexp-parser.cc:(.text._ZN2v88internal13RegExpBuilder17AddTrailSurrogateEt+0x87): undefined reference to `uset_close_56'
./v8/out/native/obj.target/v8_base/src/regexp/regexp-parser.o: In function `v8::internal::RegExpBuilder::NeedsDesugaringForIgnoreCase(int)':
../src/regexp/regexp-parser.cc:(.text._ZN2v88internal13RegExpBuilder28NeedsDesugaringForIgnoreCaseEi+0x13): undefined reference to `uset_open_56'
../src/regexp/regexp-parser.cc:(.text._ZN2v88internal13RegExpBuilder28NeedsDesugaringForIgnoreCaseEi+0x23): undefined reference to `uset_closeOver_56'
../src/regexp/regexp-parser.cc:(.text._ZN2v88internal13RegExpBuilder28NeedsDesugaringForIgnoreCaseEi+0x2b): undefined reference to `uset_removeAllStrings_56'
../src/regexp/regexp-parser.cc:(.text._ZN2v88internal13RegExpBuilder28NeedsDesugaringForIgnoreCaseEi+0x33): undefined reference to `uset_size_56'
../src/regexp/regexp-parser.cc:(.text._ZN2v88internal13RegExpBuilder28NeedsDesugaringForIgnoreCaseEi+0x41): undefined reference to `uset_close_56'
./v8/out/native/obj.target/v8_base/src/v8.o: In function `v8::internal::V8::SetNativesBlob(v8::StartupData*)':
../src/v8.cc:(.text._ZN2v88internal2V814SetNativesBlobEPNS_11StartupDataE+0x1b): undefined reference to `v8::internal::SetNativesFromFile(v8::StartupData*)'
./v8/out/native/obj.target/v8_base/src/v8.o: In function `v8::internal::V8::SetSnapshotBlob(v8::StartupData*)':
../src/v8.cc:(.text._ZN2v88internal2V815SetSnapshotBlobEPNS_11StartupDataE+0x1b): undefined reference to `v8::internal::SetSnapshotFromFile(v8::StartupData*)'
./v8/out/native/obj.target/v8_base/src/char-predicates.o: In function `v8::internal::SupplementaryPlanes::IsIDStart(int)':
../src/char-predicates.cc:(.text._ZN2v88internal19SupplementaryPlanes9IsIDStartEi+0x2): undefined reference to `u_isIDStart_56'
./v8/out/native/obj.target/v8_base/src/char-predicates.o: In function `v8::internal::SupplementaryPlanes::IsIDPart(int)':
../src/char-predicates.cc:(.text._ZN2v88internal19SupplementaryPlanes8IsIDPartEi+0x2): undefined reference to `u_isIDPart_56'
./v8/out/native/obj.target/v8_base/src/runtime/runtime-i18n.o: In function `v8::internal::Runtime_CanonicalizeLanguageTag(int, v8::internal::Object**, v8::internal::Isolate*)':
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal31Runtime_CanonicalizeLanguageTagEiPPNS0_6ObjectEPNS0_7IsolateE+0x16b): undefined reference to `uloc_forLanguageTag_56'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal31Runtime_CanonicalizeLanguageTagEiPPNS0_6ObjectEPNS0_7IsolateE+0x1a6): undefined reference to `uloc_toLanguageTag_56'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal31Runtime_CanonicalizeLanguageTagEiPPNS0_6ObjectEPNS0_7IsolateE+0x256): undefined reference to `uloc_forLanguageTag_56'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal31Runtime_CanonicalizeLanguageTagEiPPNS0_6ObjectEPNS0_7IsolateE+0x291): undefined reference to `uloc_toLanguageTag_56'
./v8/out/native/obj.target/v8_base/src/runtime/runtime-i18n.o: In function `v8::internal::Runtime_AvailableLocalesOf(int, v8::internal::Object**, v8::internal::Isolate*)':
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal26Runtime_AvailableLocalesOfEiPPNS0_6ObjectEPNS0_7IsolateE+0x157): undefined reference to `icu_56::Collator::getAvailableLocales(int&)'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal26Runtime_AvailableLocalesOfEiPPNS0_6ObjectEPNS0_7IsolateE+0x1c2): undefined reference to `icu_56::Collator::getAvailableLocales(int&)'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal26Runtime_AvailableLocalesOfEiPPNS0_6ObjectEPNS0_7IsolateE+0x1fb): undefined reference to `icu_56::NumberFormat::getAvailableLocales(int&)'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal26Runtime_AvailableLocalesOfEiPPNS0_6ObjectEPNS0_7IsolateE+0x224): undefined reference to `icu_56::NumberFormat::getAvailableLocales(int&)'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal26Runtime_AvailableLocalesOfEiPPNS0_6ObjectEPNS0_7IsolateE+0x24d): undefined reference to `icu_56::DateFormat::getAvailableLocales(int&)'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal26Runtime_AvailableLocalesOfEiPPNS0_6ObjectEPNS0_7IsolateE+0x277): undefined reference to `icu_56::DateFormat::getAvailableLocales(int&)'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal26Runtime_AvailableLocalesOfEiPPNS0_6ObjectEPNS0_7IsolateE+0x2a2): undefined reference to `icu_56::BreakIterator::getAvailableLocales(int&)'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal26Runtime_AvailableLocalesOfEiPPNS0_6ObjectEPNS0_7IsolateE+0x359): undefined reference to `uloc_toLanguageTag_56'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal26Runtime_AvailableLocalesOfEiPPNS0_6ObjectEPNS0_7IsolateE+0x461): undefined reference to `icu_56::BreakIterator::getAvailableLocales(int&)'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal26Runtime_AvailableLocalesOfEiPPNS0_6ObjectEPNS0_7IsolateE+0x519): undefined reference to `uloc_toLanguageTag_56'
./v8/out/native/obj.target/v8_base/src/runtime/runtime-i18n.o: In function `v8::internal::Runtime_GetDefaultICULocale(int, v8::internal::Object**, v8::internal::Isolate*)':
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal27Runtime_GetDefaultICULocaleEiPPNS0_6ObjectEPNS0_7IsolateE+0x111): undefined reference to `icu_56::Locale::Locale()'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal27Runtime_GetDefaultICULocaleEiPPNS0_6ObjectEPNS0_7IsolateE+0x13a): undefined reference to `uloc_toLanguageTag_56'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal27Runtime_GetDefaultICULocaleEiPPNS0_6ObjectEPNS0_7IsolateE+0x183): undefined reference to `icu_56::Locale::Locale()'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal27Runtime_GetDefaultICULocaleEiPPNS0_6ObjectEPNS0_7IsolateE+0x1ac): undefined reference to `uloc_toLanguageTag_56'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal27Runtime_GetDefaultICULocaleEiPPNS0_6ObjectEPNS0_7IsolateE+0x216): undefined reference to `icu_56::Locale::~Locale()'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal27Runtime_GetDefaultICULocaleEiPPNS0_6ObjectEPNS0_7IsolateE+0x28e): undefined reference to `icu_56::Locale::~Locale()'
./v8/out/native/obj.target/v8_base/src/runtime/runtime-i18n.o: In function `v8::internal::Runtime_GetLanguageTagVariants(int, v8::internal::Object**, v8::internal::Isolate*)':
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal30Runtime_GetLanguageTagVariantsEiPPNS0_6ObjectEPNS0_7IsolateE+0x38a): undefined reference to `uloc_forLanguageTag_56'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal30Runtime_GetLanguageTagVariantsEiPPNS0_6ObjectEPNS0_7IsolateE+0x3c4): undefined reference to `uloc_addLikelySubtags_56'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal30Runtime_GetLanguageTagVariantsEiPPNS0_6ObjectEPNS0_7IsolateE+0x3df): undefined reference to `uloc_getBaseName_56'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal30Runtime_GetLanguageTagVariantsEiPPNS0_6ObjectEPNS0_7IsolateE+0x3fa): undefined reference to `uloc_getBaseName_56'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal30Runtime_GetLanguageTagVariantsEiPPNS0_6ObjectEPNS0_7IsolateE+0x414): undefined reference to `uloc_toLanguageTag_56'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal30Runtime_GetLanguageTagVariantsEiPPNS0_6ObjectEPNS0_7IsolateE+0x42e): undefined reference to `uloc_toLanguageTag_56'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal30Runtime_GetLanguageTagVariantsEiPPNS0_6ObjectEPNS0_7IsolateE+0x7ee): undefined reference to `uloc_forLanguageTag_56'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal30Runtime_GetLanguageTagVariantsEiPPNS0_6ObjectEPNS0_7IsolateE+0x82a): undefined reference to `uloc_addLikelySubtags_56'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal30Runtime_GetLanguageTagVariantsEiPPNS0_6ObjectEPNS0_7IsolateE+0x845): undefined reference to `uloc_getBaseName_56'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal30Runtime_GetLanguageTagVariantsEiPPNS0_6ObjectEPNS0_7IsolateE+0x860): undefined reference to `uloc_getBaseName_56'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal30Runtime_GetLanguageTagVariantsEiPPNS0_6ObjectEPNS0_7IsolateE+0x87a): undefined reference to `uloc_toLanguageTag_56'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal30Runtime_GetLanguageTagVariantsEiPPNS0_6ObjectEPNS0_7IsolateE+0x894): undefined reference to `uloc_toLanguageTag_56'
./v8/out/native/obj.target/v8_base/src/runtime/runtime-i18n.o: In function `v8::internal::Runtime_InternalDateFormat(int, v8::internal::Object**, v8::internal::Isolate*)':
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal26Runtime_InternalDateFormatEiPPNS0_6ObjectEPNS0_7IsolateE+0x17f): undefined reference to `vtable for icu_56::UnicodeString'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal26Runtime_InternalDateFormatEiPPNS0_6ObjectEPNS0_7IsolateE+0x288): undefined reference to `vtable for icu_56::UnicodeString'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal26Runtime_InternalDateFormatEiPPNS0_6ObjectEPNS0_7IsolateE+0x34e): undefined reference to `icu_56::DateFormat::format(double, icu_56::UnicodeString&) const'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal26Runtime_InternalDateFormatEiPPNS0_6ObjectEPNS0_7IsolateE+0x379): undefined reference to `icu_56::DateFormat::format(double, icu_56::UnicodeString&) const'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal26Runtime_InternalDateFormatEiPPNS0_6ObjectEPNS0_7IsolateE+0x3e3): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal26Runtime_InternalDateFormatEiPPNS0_6ObjectEPNS0_7IsolateE+0x439): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
./v8/out/native/obj.target/v8_base/src/runtime/runtime-i18n.o: In function `v8::internal::Runtime_InternalDateParse(int, v8::internal::Object**, v8::internal::Isolate*)':
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal25Runtime_InternalDateParseEiPPNS0_6ObjectEPNS0_7IsolateE+0x16f): undefined reference to `icu_56::StringPiece::StringPiece(char const*)'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal25Runtime_InternalDateParseEiPPNS0_6ObjectEPNS0_7IsolateE+0x17f): undefined reference to `icu_56::UnicodeString::fromUTF8(icu_56::StringPiece const&)'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal25Runtime_InternalDateParseEiPPNS0_6ObjectEPNS0_7IsolateE+0x287): undefined reference to `icu_56::StringPiece::StringPiece(char const*)'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal25Runtime_InternalDateParseEiPPNS0_6ObjectEPNS0_7IsolateE+0x297): undefined reference to `icu_56::UnicodeString::fromUTF8(icu_56::StringPiece const&)'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal25Runtime_InternalDateParseEiPPNS0_6ObjectEPNS0_7IsolateE+0x48c): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal25Runtime_InternalDateParseEiPPNS0_6ObjectEPNS0_7IsolateE+0x552): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
./v8/out/native/obj.target/v8_base/src/runtime/runtime-i18n.o: In function `v8::internal::Runtime_InternalNumberFormat(int, v8::internal::Object**, v8::internal::Isolate*)':
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal28Runtime_InternalNumberFormatEiPPNS0_6ObjectEPNS0_7IsolateE+0x15d): undefined reference to `vtable for icu_56::UnicodeString'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal28Runtime_InternalNumberFormatEiPPNS0_6ObjectEPNS0_7IsolateE+0x240): undefined reference to `vtable for icu_56::UnicodeString'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal28Runtime_InternalNumberFormatEiPPNS0_6ObjectEPNS0_7IsolateE+0x306): undefined reference to `icu_56::NumberFormat::format(double, icu_56::UnicodeString&) const'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal28Runtime_InternalNumberFormatEiPPNS0_6ObjectEPNS0_7IsolateE+0x331): undefined reference to `icu_56::NumberFormat::format(double, icu_56::UnicodeString&) const'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal28Runtime_InternalNumberFormatEiPPNS0_6ObjectEPNS0_7IsolateE+0x39b): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal28Runtime_InternalNumberFormatEiPPNS0_6ObjectEPNS0_7IsolateE+0x3f1): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
./v8/out/native/obj.target/v8_base/src/runtime/runtime-i18n.o: In function `v8::internal::Runtime_InternalNumberParse(int, v8::internal::Object**, v8::internal::Isolate*)':
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal27Runtime_InternalNumberParseEiPPNS0_6ObjectEPNS0_7IsolateE+0x180): undefined reference to `icu_56::StringPiece::StringPiece(char const*)'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal27Runtime_InternalNumberParseEiPPNS0_6ObjectEPNS0_7IsolateE+0x190): undefined reference to `icu_56::UnicodeString::fromUTF8(icu_56::StringPiece const&)'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal27Runtime_InternalNumberParseEiPPNS0_6ObjectEPNS0_7IsolateE+0x1bf): undefined reference to `icu_56::Formattable::Formattable()'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal27Runtime_InternalNumberParseEiPPNS0_6ObjectEPNS0_7IsolateE+0x1f4): undefined reference to `icu_56::Formattable::getType() const'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal27Runtime_InternalNumberParseEiPPNS0_6ObjectEPNS0_7IsolateE+0x2f3): undefined reference to `icu_56::StringPiece::StringPiece(char const*)'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal27Runtime_InternalNumberParseEiPPNS0_6ObjectEPNS0_7IsolateE+0x303): undefined reference to `icu_56::UnicodeString::fromUTF8(icu_56::StringPiece const&)'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal27Runtime_InternalNumberParseEiPPNS0_6ObjectEPNS0_7IsolateE+0x332): undefined reference to `icu_56::Formattable::Formattable()'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal27Runtime_InternalNumberParseEiPPNS0_6ObjectEPNS0_7IsolateE+0x367): undefined reference to `icu_56::Formattable::getType() const'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal27Runtime_InternalNumberParseEiPPNS0_6ObjectEPNS0_7IsolateE+0x46b): undefined reference to `icu_56::Formattable::~Formattable()'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal27Runtime_InternalNumberParseEiPPNS0_6ObjectEPNS0_7IsolateE+0x478): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal27Runtime_InternalNumberParseEiPPNS0_6ObjectEPNS0_7IsolateE+0x4c1): undefined reference to `icu_56::Formattable::~Formattable()'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal27Runtime_InternalNumberParseEiPPNS0_6ObjectEPNS0_7IsolateE+0x4ce): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
./v8/out/native/obj.target/v8_base/src/runtime/runtime-i18n.o: In function `v8::internal::Runtime_StringNormalize(int, v8::internal::Object**, v8::internal::Isolate*)':
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal23Runtime_StringNormalizeEiPPNS0_6ObjectEPNS0_7IsolateE+0x3ed): undefined reference to `icu_56::UnicodeString::UnicodeString(signed char, unsigned short const*, int)'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal23Runtime_StringNormalizeEiPPNS0_6ObjectEPNS0_7IsolateE+0x3f4): undefined reference to `vtable for icu_56::UnicodeString'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal23Runtime_StringNormalizeEiPPNS0_6ObjectEPNS0_7IsolateE+0x425): undefined reference to `icu_56::Normalizer::normalize(icu_56::UnicodeString const&, UNormalizationMode, int, icu_56::UnicodeString&, UErrorCode&)'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal23Runtime_StringNormalizeEiPPNS0_6ObjectEPNS0_7IsolateE+0x4a3): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal23Runtime_StringNormalizeEiPPNS0_6ObjectEPNS0_7IsolateE+0x4b0): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal23Runtime_StringNormalizeEiPPNS0_6ObjectEPNS0_7IsolateE+0x504): undefined reference to `icu_56::UnicodeString::UnicodeString(signed char, unsigned short const*, int)'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal23Runtime_StringNormalizeEiPPNS0_6ObjectEPNS0_7IsolateE+0x50b): undefined reference to `vtable for icu_56::UnicodeString'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal23Runtime_StringNormalizeEiPPNS0_6ObjectEPNS0_7IsolateE+0x53c): undefined reference to `icu_56::Normalizer::normalize(icu_56::UnicodeString const&, UNormalizationMode, int, icu_56::UnicodeString&, UErrorCode&)'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal23Runtime_StringNormalizeEiPPNS0_6ObjectEPNS0_7IsolateE+0x5ba): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal23Runtime_StringNormalizeEiPPNS0_6ObjectEPNS0_7IsolateE+0x5c7): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
./v8/out/native/obj.target/v8_base/src/runtime/runtime-i18n.o: In function `v8::internal::Runtime_BreakIteratorAdoptText(int, v8::internal::Object**, v8::internal::Isolate*)':
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal30Runtime_BreakIteratorAdoptTextEiPPNS0_6ObjectEPNS0_7IsolateE+0x1c1): undefined reference to `icu_56::UMemory::operator new(unsigned long)'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal30Runtime_BreakIteratorAdoptTextEiPPNS0_6ObjectEPNS0_7IsolateE+0x1dc): undefined reference to `icu_56::UnicodeString::UnicodeString(unsigned short const*, int)'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal30Runtime_BreakIteratorAdoptTextEiPPNS0_6ObjectEPNS0_7IsolateE+0x343): undefined reference to `icu_56::UMemory::operator new(unsigned long)'
../src/runtime/runtime-i18n.cc:(.text._ZN2v88internal30Runtime_BreakIteratorAdoptTextEiPPNS0_6ObjectEPNS0_7IsolateE+0x35e): undefined reference to `icu_56::UnicodeString::UnicodeString(unsigned short const*, int)'
./v8/out/native/obj.target/v8_base/src/i18n.o: In function `v8::internal::DateFormat::InitializeDateTimeFormat(v8::internal::Isolate*, v8::internal::Handle<v8::internal::String>, v8::internal::Handle<v8::internal::JSObject>, v8::internal::Handle<v8::internal::JSObject>)':
../src/i18n.cc:(.text._ZN2v88internal10DateFormat24InitializeDateTimeFormatEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0x28): undefined reference to `icu_56::Locale::Locale()'
../src/i18n.cc:(.text._ZN2v88internal10DateFormat24InitializeDateTimeFormatEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0x65): undefined reference to `uloc_forLanguageTag_56'
../src/i18n.cc:(.text._ZN2v88internal10DateFormat24InitializeDateTimeFormatEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0x9d): undefined reference to `icu_56::Locale::Locale(char const*, char const*, char const*, char const*)'
../src/i18n.cc:(.text._ZN2v88internal10DateFormat24InitializeDateTimeFormatEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0xaa): undefined reference to `icu_56::Locale::operator=(icu_56::Locale const&)'
../src/i18n.cc:(.text._ZN2v88internal10DateFormat24InitializeDateTimeFormatEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0xb2): undefined reference to `icu_56::Locale::~Locale()'
../src/i18n.cc:(.text._ZN2v88internal10DateFormat24InitializeDateTimeFormatEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0xe9): undefined reference to `icu_56::Locale::getBaseName() const'
../src/i18n.cc:(.text._ZN2v88internal10DateFormat24InitializeDateTimeFormatEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0x103): undefined reference to `icu_56::Locale::Locale(char const*, char const*, char const*, char const*)'
../src/i18n.cc:(.text._ZN2v88internal10DateFormat24InitializeDateTimeFormatEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0x13a): undefined reference to `icu_56::Locale::~Locale()'
../src/i18n.cc:(.text._ZN2v88internal10DateFormat24InitializeDateTimeFormatEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0x14e): undefined reference to `icu_56::Locale::~Locale()'
./v8/out/native/obj.target/v8_base/src/i18n.o: In function `v8::internal::(anonymous namespace)::CreateICUDateFormat(v8::internal::Isolate*, icu_56::Locale const&, v8::internal::Handle<v8::internal::JSObject>)':
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_119CreateICUDateFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x1d): undefined reference to `vtable for icu_56::UnicodeString'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_119CreateICUDateFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x5b): undefined reference to `icu_56::TimeZone::createTimeZone(icu_56::UnicodeString const&)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_119CreateICUDateFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x62): undefined reference to `icu_56::TimeZone::createDefault()'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_119CreateICUDateFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x7a): undefined reference to `icu_56::Calendar::createInstance(icu_56::TimeZone*, icu_56::Locale const&, UErrorCode&)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_119CreateICUDateFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x8f): undefined reference to `icu_56::GregorianCalendar::getStaticClassID()'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_119CreateICUDateFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0xb1): undefined reference to `icu_56::GregorianCalendar::setGregorianChange(double, UErrorCode&)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_119CreateICUDateFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0xec): undefined reference to `icu_56::DateTimePatternGenerator::createInstance(icu_56::Locale const&, UErrorCode&)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_119CreateICUDateFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x11f): undefined reference to `icu_56::DateTimePatternGenerator::getBestPattern(icu_56::UnicodeString const&, UErrorCode&)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_119CreateICUDateFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x12c): undefined reference to `icu_56::UnicodeString::moveFrom(icu_56::UnicodeString&)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_119CreateICUDateFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x134): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_119CreateICUDateFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x14c): undefined reference to `icu_56::UMemory::operator new(unsigned long)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_119CreateICUDateFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x16c): undefined reference to `icu_56::SimpleDateFormat::SimpleDateFormat(icu_56::UnicodeString const&, icu_56::Locale const&, UErrorCode&)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_119CreateICUDateFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x18f): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_119CreateICUDateFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x1c6): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_119CreateICUDateFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x1d3): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
./v8/out/native/obj.target/v8_base/src/i18n.o: In function `v8::internal::(anonymous namespace)::SetResolvedDateSettings(v8::internal::Isolate*, icu_56::Locale const&, icu_56::SimpleDateFormat*, v8::internal::Handle<v8::internal::JSObject>)':
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_123SetResolvedDateSettingsEPNS0_7IsolateERKN6icu_566LocaleEPNS4_16SimpleDateFormatENS0_6HandleINS0_8JSObjectEEE+0x2a): undefined reference to `vtable for icu_56::UnicodeString'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_123SetResolvedDateSettingsEPNS0_7IsolateERKN6icu_566LocaleEPNS4_16SimpleDateFormatENS0_6HandleINS0_8JSObjectEEE+0x174): undefined reference to `icu_56::Calendar::getTimeZone() const'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_123SetResolvedDateSettingsEPNS0_7IsolateERKN6icu_566LocaleEPNS4_16SimpleDateFormatENS0_6HandleINS0_8JSObjectEEE+0x19a): undefined reference to `icu_56::UnicodeString::operator=(icu_56::UnicodeString const&)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_123SetResolvedDateSettingsEPNS0_7IsolateERKN6icu_566LocaleEPNS4_16SimpleDateFormatENS0_6HandleINS0_8JSObjectEEE+0x1b8): undefined reference to `icu_56::TimeZone::getCanonicalID(icu_56::UnicodeString const&, icu_56::UnicodeString&, UErrorCode&)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_123SetResolvedDateSettingsEPNS0_7IsolateERKN6icu_566LocaleEPNS4_16SimpleDateFormatENS0_6HandleINS0_8JSObjectEEE+0x1e6): undefined reference to `icu_56::UnicodeString::UnicodeString(signed char, unsigned short const*, int)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_123SetResolvedDateSettingsEPNS0_7IsolateERKN6icu_566LocaleEPNS4_16SimpleDateFormatENS0_6HandleINS0_8JSObjectEEE+0x23d): undefined reference to `icu_56::UnicodeString::doEquals(icu_56::UnicodeString const&, int) const'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_123SetResolvedDateSettingsEPNS0_7IsolateERKN6icu_566LocaleEPNS4_16SimpleDateFormatENS0_6HandleINS0_8JSObjectEEE+0x25b): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_123SetResolvedDateSettingsEPNS0_7IsolateERKN6icu_566LocaleEPNS4_16SimpleDateFormatENS0_6HandleINS0_8JSObjectEEE+0x362): undefined reference to `icu_56::NumberingSystem::createInstance(icu_56::Locale const&, UErrorCode&)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_123SetResolvedDateSettingsEPNS0_7IsolateERKN6icu_566LocaleEPNS4_16SimpleDateFormatENS0_6HandleINS0_8JSObjectEEE+0x3bf): undefined reference to `icu_56::NumberingSystem::getName() const'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_123SetResolvedDateSettingsEPNS0_7IsolateERKN6icu_566LocaleEPNS4_16SimpleDateFormatENS0_6HandleINS0_8JSObjectEEE+0x46f): undefined reference to `uloc_toLanguageTag_56'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_123SetResolvedDateSettingsEPNS0_7IsolateERKN6icu_566LocaleEPNS4_16SimpleDateFormatENS0_6HandleINS0_8JSObjectEEE+0x546): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_123SetResolvedDateSettingsEPNS0_7IsolateERKN6icu_566LocaleEPNS4_16SimpleDateFormatENS0_6HandleINS0_8JSObjectEEE+0x553): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_123SetResolvedDateSettingsEPNS0_7IsolateERKN6icu_566LocaleEPNS4_16SimpleDateFormatENS0_6HandleINS0_8JSObjectEEE+0x560): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
./v8/out/native/obj.target/v8_base/src/i18n.o: In function `v8::internal::NumberFormat::InitializeNumberFormat(v8::internal::Isolate*, v8::internal::Handle<v8::internal::String>, v8::internal::Handle<v8::internal::JSObject>, v8::internal::Handle<v8::internal::JSObject>)':
../src/i18n.cc:(.text._ZN2v88internal12NumberFormat22InitializeNumberFormatEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0x28): undefined reference to `icu_56::Locale::Locale()'
../src/i18n.cc:(.text._ZN2v88internal12NumberFormat22InitializeNumberFormatEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0x65): undefined reference to `uloc_forLanguageTag_56'
../src/i18n.cc:(.text._ZN2v88internal12NumberFormat22InitializeNumberFormatEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0x9d): undefined reference to `icu_56::Locale::Locale(char const*, char const*, char const*, char const*)'
../src/i18n.cc:(.text._ZN2v88internal12NumberFormat22InitializeNumberFormatEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0xaa): undefined reference to `icu_56::Locale::operator=(icu_56::Locale const&)'
../src/i18n.cc:(.text._ZN2v88internal12NumberFormat22InitializeNumberFormatEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0xb2): undefined reference to `icu_56::Locale::~Locale()'
../src/i18n.cc:(.text._ZN2v88internal12NumberFormat22InitializeNumberFormatEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0xe9): undefined reference to `icu_56::Locale::getBaseName() const'
../src/i18n.cc:(.text._ZN2v88internal12NumberFormat22InitializeNumberFormatEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0x103): undefined reference to `icu_56::Locale::Locale(char const*, char const*, char const*, char const*)'
../src/i18n.cc:(.text._ZN2v88internal12NumberFormat22InitializeNumberFormatEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0x13a): undefined reference to `icu_56::Locale::~Locale()'
../src/i18n.cc:(.text._ZN2v88internal12NumberFormat22InitializeNumberFormatEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0x14e): undefined reference to `icu_56::Locale::~Locale()'
./v8/out/native/obj.target/v8_base/src/i18n.o: In function `v8::internal::(anonymous namespace)::CreateICUNumberFormat(v8::internal::Isolate*, icu_56::Locale const&, v8::internal::Handle<v8::internal::JSObject>)':
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_121CreateICUNumberFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x24): undefined reference to `vtable for icu_56::UnicodeString'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_121CreateICUNumberFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x83): undefined reference to `icu_56::UnicodeString::UnicodeString(signed char, unsigned short const*, int)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_121CreateICUNumberFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0xda): undefined reference to `icu_56::UnicodeString::doEquals(icu_56::UnicodeString const&, int) const'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_121CreateICUNumberFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0xfb): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_121CreateICUNumberFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x15f): undefined reference to `icu_56::UnicodeString::UnicodeString(signed char, unsigned short const*, int)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_121CreateICUNumberFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x1c2): undefined reference to `icu_56::UnicodeString::doEquals(icu_56::UnicodeString const&, int) const'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_121CreateICUNumberFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x1ea): undefined reference to `icu_56::UnicodeString::UnicodeString(signed char, unsigned short const*, int)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_121CreateICUNumberFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x24d): undefined reference to `icu_56::UnicodeString::doEquals(icu_56::UnicodeString const&, int) const'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_121CreateICUNumberFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x26e): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_121CreateICUNumberFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x299): undefined reference to `icu_56::UnicodeString::UnicodeString(signed char, unsigned short const*, int)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_121CreateICUNumberFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x2f4): undefined reference to `icu_56::UnicodeString::doEquals(icu_56::UnicodeString const&, int) const'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_121CreateICUNumberFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x312): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_121CreateICUNumberFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x322): undefined reference to `icu_56::NumberFormat::createPercentInstance(icu_56::Locale const&, UErrorCode&)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_121CreateICUNumberFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x34b): undefined reference to `icu_56::NumberFormat::createInstance(icu_56::Locale const&, UErrorCode&)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_121CreateICUNumberFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x36a): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_121CreateICUNumberFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x37d): undefined reference to `icu_56::NumberFormat::createInstance(icu_56::Locale const&, UNumberFormatStyle, UErrorCode&)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_121CreateICUNumberFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x39f): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_121CreateICUNumberFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x3bb): undefined reference to `icu_56::UnicodeString::getTerminatedBuffer()'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_121CreateICUNumberFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x3c8): undefined reference to `ucurr_getDefaultFractionDigits_56'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_121CreateICUNumberFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x411): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_121CreateICUNumberFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x521): undefined reference to `icu_56::DecimalFormat::setMinimumSignificantDigits(int)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_121CreateICUNumberFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x54e): undefined reference to `icu_56::DecimalFormat::setMaximumSignificantDigits(int)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_121CreateICUNumberFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x55b): undefined reference to `icu_56::DecimalFormat::setSignificantDigitsUsed(signed char)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_121CreateICUNumberFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x5aa): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_121CreateICUNumberFormatEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x5b4): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
./v8/out/native/obj.target/v8_base/src/i18n.o: In function `v8::internal::(anonymous namespace)::SetResolvedNumberSettings(v8::internal::Isolate*, icu_56::Locale const&, icu_56::DecimalFormat*, v8::internal::Handle<v8::internal::JSObject>)':
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_125SetResolvedNumberSettingsEPNS0_7IsolateERKN6icu_566LocaleEPNS4_13DecimalFormatENS0_6HandleINS0_8JSObjectEEE+0x20): undefined reference to `vtable for icu_56::UnicodeString'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_125SetResolvedNumberSettingsEPNS0_7IsolateERKN6icu_566LocaleEPNS4_13DecimalFormatENS0_6HandleINS0_8JSObjectEEE+0xd1): undefined reference to `icu_56::NumberFormat::getCurrency() const'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_125SetResolvedNumberSettingsEPNS0_7IsolateERKN6icu_566LocaleEPNS4_13DecimalFormatENS0_6HandleINS0_8JSObjectEEE+0xe1): undefined reference to `icu_56::UnicodeString::UnicodeString(unsigned short const*)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_125SetResolvedNumberSettingsEPNS0_7IsolateERKN6icu_566LocaleEPNS4_13DecimalFormatENS0_6HandleINS0_8JSObjectEEE+0x1ab): undefined reference to `icu_56::NumberingSystem::createInstance(icu_56::Locale const&, UErrorCode&)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_125SetResolvedNumberSettingsEPNS0_7IsolateERKN6icu_566LocaleEPNS4_13DecimalFormatENS0_6HandleINS0_8JSObjectEEE+0x20b): undefined reference to `icu_56::NumberingSystem::getName() const'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_125SetResolvedNumberSettingsEPNS0_7IsolateERKN6icu_566LocaleEPNS4_13DecimalFormatENS0_6HandleINS0_8JSObjectEEE+0x2c1): undefined reference to `icu_56::NumberFormat::isGroupingUsed() const'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_125SetResolvedNumberSettingsEPNS0_7IsolateERKN6icu_566LocaleEPNS4_13DecimalFormatENS0_6HandleINS0_8JSObjectEEE+0x31f): undefined reference to `icu_56::NumberFormat::getMinimumIntegerDigits() const'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_125SetResolvedNumberSettingsEPNS0_7IsolateERKN6icu_566LocaleEPNS4_13DecimalFormatENS0_6HandleINS0_8JSObjectEEE+0x379): undefined reference to `icu_56::NumberFormat::getMinimumFractionDigits() const'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_125SetResolvedNumberSettingsEPNS0_7IsolateERKN6icu_566LocaleEPNS4_13DecimalFormatENS0_6HandleINS0_8JSObjectEEE+0x3d3): undefined reference to `icu_56::NumberFormat::getMaximumFractionDigits() const'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_125SetResolvedNumberSettingsEPNS0_7IsolateERKN6icu_566LocaleEPNS4_13DecimalFormatENS0_6HandleINS0_8JSObjectEEE+0x50e): undefined reference to `icu_56::DecimalFormat::getMinimumSignificantDigits() const'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_125SetResolvedNumberSettingsEPNS0_7IsolateERKN6icu_566LocaleEPNS4_13DecimalFormatENS0_6HandleINS0_8JSObjectEEE+0x63f): undefined reference to `icu_56::DecimalFormat::getMaximumSignificantDigits() const'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_125SetResolvedNumberSettingsEPNS0_7IsolateERKN6icu_566LocaleEPNS4_13DecimalFormatENS0_6HandleINS0_8JSObjectEEE+0x689): undefined reference to `uloc_toLanguageTag_56'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_125SetResolvedNumberSettingsEPNS0_7IsolateERKN6icu_566LocaleEPNS4_13DecimalFormatENS0_6HandleINS0_8JSObjectEEE+0x766): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_125SetResolvedNumberSettingsEPNS0_7IsolateERKN6icu_566LocaleEPNS4_13DecimalFormatENS0_6HandleINS0_8JSObjectEEE+0x773): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
./v8/out/native/obj.target/v8_base/src/i18n.o: In function `v8::internal::Collator::InitializeCollator(v8::internal::Isolate*, v8::internal::Handle<v8::internal::String>, v8::internal::Handle<v8::internal::JSObject>, v8::internal::Handle<v8::internal::JSObject>)':
../src/i18n.cc:(.text._ZN2v88internal8Collator18InitializeCollatorEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0x28): undefined reference to `icu_56::Locale::Locale()'
../src/i18n.cc:(.text._ZN2v88internal8Collator18InitializeCollatorEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0x65): undefined reference to `uloc_forLanguageTag_56'
../src/i18n.cc:(.text._ZN2v88internal8Collator18InitializeCollatorEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0x9d): undefined reference to `icu_56::Locale::Locale(char const*, char const*, char const*, char const*)'
../src/i18n.cc:(.text._ZN2v88internal8Collator18InitializeCollatorEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0xaa): undefined reference to `icu_56::Locale::operator=(icu_56::Locale const&)'
../src/i18n.cc:(.text._ZN2v88internal8Collator18InitializeCollatorEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0xb2): undefined reference to `icu_56::Locale::~Locale()'
../src/i18n.cc:(.text._ZN2v88internal8Collator18InitializeCollatorEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0xe9): undefined reference to `icu_56::Locale::getBaseName() const'
../src/i18n.cc:(.text._ZN2v88internal8Collator18InitializeCollatorEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0x103): undefined reference to `icu_56::Locale::Locale(char const*, char const*, char const*, char const*)'
../src/i18n.cc:(.text._ZN2v88internal8Collator18InitializeCollatorEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0x13a): undefined reference to `icu_56::Locale::~Locale()'
../src/i18n.cc:(.text._ZN2v88internal8Collator18InitializeCollatorEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0x14e): undefined reference to `icu_56::Locale::~Locale()'
./v8/out/native/obj.target/v8_base/src/i18n.o: In function `v8::internal::(anonymous namespace)::CreateICUCollator(v8::internal::Isolate*, icu_56::Locale const&, v8::internal::Handle<v8::internal::JSObject>)':
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_117CreateICUCollatorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x29): undefined reference to `icu_56::Collator::createInstance(icu_56::Locale const&, UErrorCode&)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_117CreateICUCollatorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0xa9): undefined reference to `vtable for icu_56::UnicodeString'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_117CreateICUCollatorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0xf6): undefined reference to `icu_56::UnicodeString::UnicodeString(signed char, unsigned short const*, int)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_117CreateICUCollatorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x14d): undefined reference to `icu_56::UnicodeString::doEquals(icu_56::UnicodeString const&, int) const'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_117CreateICUCollatorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x16e): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_117CreateICUCollatorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x1b1): undefined reference to `icu_56::UnicodeString::UnicodeString(signed char, unsigned short const*, int)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_117CreateICUCollatorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x208): undefined reference to `icu_56::UnicodeString::doEquals(icu_56::UnicodeString const&, int) const'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_117CreateICUCollatorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x229): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_117CreateICUCollatorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x29c): undefined reference to `icu_56::UnicodeString::UnicodeString(signed char, unsigned short const*, int)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_117CreateICUCollatorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x2f3): undefined reference to `icu_56::UnicodeString::doEquals(icu_56::UnicodeString const&, int) const'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_117CreateICUCollatorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x314): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_117CreateICUCollatorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x341): undefined reference to `icu_56::UnicodeString::UnicodeString(signed char, unsigned short const*, int)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_117CreateICUCollatorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x398): undefined reference to `icu_56::UnicodeString::doEquals(icu_56::UnicodeString const&, int) const'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_117CreateICUCollatorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x3b9): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_117CreateICUCollatorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x416): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_117CreateICUCollatorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x420): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_117CreateICUCollatorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x451): undefined reference to `icu_56::UnicodeString::UnicodeString(signed char, unsigned short const*, int)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_117CreateICUCollatorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x4a8): undefined reference to `icu_56::UnicodeString::doEquals(icu_56::UnicodeString const&, int) const'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_117CreateICUCollatorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x4c9): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
./v8/out/native/obj.target/v8_base/src/i18n.o: In function `v8::internal::(anonymous namespace)::SetResolvedCollatorSettings(v8::internal::Isolate*, icu_56::Locale const&, icu_56::Collator*, v8::internal::Handle<v8::internal::JSObject>)':
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_127SetResolvedCollatorSettingsEPNS0_7IsolateERKN6icu_566LocaleEPNS4_8CollatorENS0_6HandleINS0_8JSObjectEEE+0x6ef): undefined reference to `uloc_toLanguageTag_56'
./v8/out/native/obj.target/v8_base/src/i18n.o: In function `v8::internal::BreakIterator::InitializeBreakIterator(v8::internal::Isolate*, v8::internal::Handle<v8::internal::String>, v8::internal::Handle<v8::internal::JSObject>, v8::internal::Handle<v8::internal::JSObject>)':
../src/i18n.cc:(.text._ZN2v88internal13BreakIterator23InitializeBreakIteratorEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0x28): undefined reference to `icu_56::Locale::Locale()'
../src/i18n.cc:(.text._ZN2v88internal13BreakIterator23InitializeBreakIteratorEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0x65): undefined reference to `uloc_forLanguageTag_56'
../src/i18n.cc:(.text._ZN2v88internal13BreakIterator23InitializeBreakIteratorEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0x9d): undefined reference to `icu_56::Locale::Locale(char const*, char const*, char const*, char const*)'
../src/i18n.cc:(.text._ZN2v88internal13BreakIterator23InitializeBreakIteratorEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0xaa): undefined reference to `icu_56::Locale::operator=(icu_56::Locale const&)'
../src/i18n.cc:(.text._ZN2v88internal13BreakIterator23InitializeBreakIteratorEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0xb2): undefined reference to `icu_56::Locale::~Locale()'
../src/i18n.cc:(.text._ZN2v88internal13BreakIterator23InitializeBreakIteratorEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0xe6): undefined reference to `icu_56::Locale::getBaseName() const'
../src/i18n.cc:(.text._ZN2v88internal13BreakIterator23InitializeBreakIteratorEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0x100): undefined reference to `icu_56::Locale::Locale(char const*, char const*, char const*, char const*)'
../src/i18n.cc:(.text._ZN2v88internal13BreakIterator23InitializeBreakIteratorEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0x136): undefined reference to `icu_56::Locale::~Locale()'
../src/i18n.cc:(.text._ZN2v88internal13BreakIterator23InitializeBreakIteratorEPNS0_7IsolateENS0_6HandleINS0_6StringEEENS4_INS0_8JSObjectEEES8_+0x14a): undefined reference to `icu_56::Locale::~Locale()'
./v8/out/native/obj.target/v8_base/src/i18n.o: In function `v8::internal::(anonymous namespace)::CreateICUBreakIterator(v8::internal::Isolate*, icu_56::Locale const&, v8::internal::Handle<v8::internal::JSObject>)':
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_122CreateICUBreakIteratorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x1d): undefined reference to `vtable for icu_56::UnicodeString'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_122CreateICUBreakIteratorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x6c): undefined reference to `icu_56::UnicodeString::UnicodeString(signed char, unsigned short const*, int)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_122CreateICUBreakIteratorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0xc3): undefined reference to `icu_56::UnicodeString::doEquals(icu_56::UnicodeString const&, int) const'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_122CreateICUBreakIteratorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0xe1): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_122CreateICUBreakIteratorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0xf2): undefined reference to `icu_56::BreakIterator::createCharacterInstance(icu_56::Locale const&, UErrorCode&)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_122CreateICUBreakIteratorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x115): undefined reference to `icu_56::UnicodeString::UnicodeString(signed char, unsigned short const*, int)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_122CreateICUBreakIteratorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x16c): undefined reference to `icu_56::UnicodeString::doEquals(icu_56::UnicodeString const&, int) const'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_122CreateICUBreakIteratorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x18a): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_122CreateICUBreakIteratorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x19b): undefined reference to `icu_56::BreakIterator::createSentenceInstance(icu_56::Locale const&, UErrorCode&)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_122CreateICUBreakIteratorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x1bb): undefined reference to `icu_56::UnicodeString::UnicodeString(signed char, unsigned short const*, int)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_122CreateICUBreakIteratorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x20c): undefined reference to `icu_56::UnicodeString::doEquals(icu_56::UnicodeString const&, int) const'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_122CreateICUBreakIteratorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x224): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_122CreateICUBreakIteratorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x235): undefined reference to `icu_56::BreakIterator::createLineInstance(icu_56::Locale const&, UErrorCode&)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_122CreateICUBreakIteratorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x23c): undefined reference to `icu_56::BreakIterator::createWordInstance(icu_56::Locale const&, UErrorCode&)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_122CreateICUBreakIteratorEPNS0_7IsolateERKN6icu_566LocaleENS0_6HandleINS0_8JSObjectEEE+0x274): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
./v8/out/native/obj.target/v8_base/src/i18n.o: In function `v8::internal::(anonymous namespace)::SetResolvedBreakIteratorSettings(v8::internal::Isolate*, icu_56::Locale const&, icu_56::BreakIterator*, v8::internal::Handle<v8::internal::JSObject>)':
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_132SetResolvedBreakIteratorSettingsEPNS0_7IsolateERKN6icu_566LocaleEPNS4_13BreakIteratorENS0_6HandleINS0_8JSObjectEEE+0x34): undefined reference to `uloc_toLanguageTag_56'
./v8/out/native/obj.target/v8_base/src/i18n.o: In function `v8::internal::(anonymous namespace)::ExtractStringSetting(v8::internal::Isolate*, v8::internal::Handle<v8::internal::JSObject>, char const*, icu_56::UnicodeString*)':
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_120ExtractStringSettingEPNS0_7IsolateENS0_6HandleINS0_8JSObjectEEEPKcPN6icu_5613UnicodeStringE+0x147): undefined reference to `icu_56::StringPiece::StringPiece(char const*)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_120ExtractStringSettingEPNS0_7IsolateENS0_6HandleINS0_8JSObjectEEEPKcPN6icu_5613UnicodeStringE+0x157): undefined reference to `icu_56::UnicodeString::fromUTF8(icu_56::StringPiece const&)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_120ExtractStringSettingEPNS0_7IsolateENS0_6HandleINS0_8JSObjectEEEPKcPN6icu_5613UnicodeStringE+0x162): undefined reference to `icu_56::UnicodeString::moveFrom(icu_56::UnicodeString&)'
../src/i18n.cc:(.text._ZN2v88internal12_GLOBAL__N_120ExtractStringSettingEPNS0_7IsolateENS0_6HandleINS0_8JSObjectEEEPKcPN6icu_5613UnicodeStringE+0x16a): undefined reference to `icu_56::UnicodeString::~UnicodeString()'
collect2: error: ld returned 1 exit status
Makefile:19: recipe for target 'v8worker.test' failed
make: *** [v8worker.test] Error 2
root@ubuntu:~/gostuff/src/github.com/ry/v8worker#
Env:
gcc version 6.2.0 20160901 (Ubuntu 6.2.0-3ubuntu11~16.04)
ubuntu 4.4.0-22-generic
x86_64
Default make
(make GYPFLAGS="-Dcomponent=static_library"
) built successfully and passed all tests. Is shared_library
supported? If not, are there any near term plans for support? Thanks!
linux, depot tools installed and are in the path
go get github.com/ry/v8worker
gives me
Failed to open 'v8.pc': No such file or directory
Any advice?...
Hi,
I have been working on 2 extensions to your v8worker project (see my fork).
Two additional Javascript keywords have been introduced to allow synchronous calls from Javascript to Go and vice versa.
var response = $request("ping");
which will call the Go function with this signature:
type RequestMessageCallback func(msg string) string
and in Go
response := worker.Request("pang")
which will call the function set as the handler:
$request_handler(function(msg) {
return msg;
});
At his point the code is working and would love to get some feedback.
I am using these extensions such that I can replace the otto
package which provides these calling scenarios. In my case, I will send JSON messages back and forth that represent function calls and return values.
^ ernest
FYI
At some moment SendSync returns an empty string instead of the result.
In my case, it happens right after calling another package with C bindings (https://github.com/gographics/imagick)
My code:
data := JSWorker.SendSync(opts)
with some probability, data contains empty string instead of a result. looks like a goroutines multithread issue.
After spending a few days of trial and analysing build errors, I finally got a working Docker based build for v8worker based apps , see https://github.com/emicklei/v8worker-docker. The only thing I needed to change was to add the --nohooks flag to fetch.
Happy building
________ running '/usr/bin/python2 v8/third_party/binutils/download.py' in '/home/me/.go/src/github.com/ry/v8worker'
File "/home/me/.go/src/github.com/ry/v8worker/v8/build/detect_v8_host_arch.py", line 37
print DoMain([])
^
SyntaxError: invalid syntax
Traceback (most recent call last):
File "v8/third_party/binutils/download.py", line 117, in <module>
sys.exit(main(sys.argv))
File "v8/third_party/binutils/download.py", line 104, in main
arch = GetArch()
File "v8/third_party/binutils/download.py", line 51, in GetArch
return subprocess.check_output(['python', DETECT_HOST_ARCH]).strip()
File "/usr/lib/python2.7/subprocess.py", line 573, in check_output
raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command '['python', '/home/me/.go/src/github.com/ry/v8worker/v8/build/detect_v8_host_arch.py']' returned non-zero exit status 1
Error: Command '/usr/bin/python2 v8/third_party/binutils/download.py' returned non-zero exit status 1 in /home/me/.go/src/github.com/ry/v8worker
Makefile:15: recipe for target 'v8' failed
make: *** [v8] Error 2
Running Arch Linux.
I need to use multiple worker instances and when one worker finishes I need a way to destroy an instance and free the memory
Afaik in current implementation memory will never be freed
What would you suggest?
Have you seen Nim https://github.com/nim-lang/Nim?
Might never be popular like Go but its really interesting.
This doesn't actually have anything to do with v8worker. Please feel free to close. Sorry to bother you.
In Otto we exposed a GO object to JavaScript so that the user can access the content and the object itself.
For example the content is stored in the variable 'data' and contains a 'time.Time' field named LastUpdate (actually several, based on many different data formats). To perform calculations on that object in JavaScript we need convert the time object to a unix timestamp and in Otto this is as simple as:
var lastUpdate = data.LastUpdate.Unix();
But in v8worker this will result in an error message as the object is not linked, which makes sense but implementation a lot harder, specially because a date object in GO does not become a JavaScript date but a textual representation (which we could parse).
Any suggestions how we could make this migration easier (without a need to rewrite all user scripts) or pass an object from GO to v8?
Hi!
Is there any opportunity to somehow debug JavaScript runtime errors (on the server side of course)?
Is there any reason for v8 to be checked into the source code ? Can we fetch it using depot tools only ?
hi @ry any thoughts about this?
I:v8worker chris$ make
version=4.3.59 target=x64.debug ./build.sh
++ dirname ./build.sh
+ cd .
+ make -C v8-4.3.59 i18nsupport=off x64.debug
make[1]: *** No rule to make target `third_party/icu/icu.gypi', needed by `out/Makefile.x64.debug'. Stop.
make: *** [v8.pc] Error 2
OS X Yosemite
Version 10.10.2
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.