Update 20140130: I suggest you first have a look at my new article on the same topic.
I thought it was about time to extend my JavaScript curiosity to the server side and Node.js.
A first step was to install it on my web server, a QNAP TS-109 running Debian 6. I downloaded the latest version (v0.10.15), and did the usual:
$ ./configure $ make
after hours:
../deps/v8/src/arm/macro-assembler-arm.cc:65:3: error: #error "For thumb inter-working we require an architecture which supports blx"
That is not the first time my TS 109 has been too old. However, the english translation of the above message is that you have to have an ARM cpu V5 or later, and it has to have a ‘t’ in its name (at least, this is what the source tells, see below). In my case
$ uname -a Linux kvaser 2.6.32-5-orion5x #1 Sat May 11 02:12:29 UTC 2013 armv5tel GNU/Linux
so I should be fine. I found a workaround from which I extracted the essential part.
// We always generate arm code, never thumb code, even if V8 is compiled to // thumb, so we require inter-working support #if defined(__thumb__) && !defined(USE_THUMB_INTERWORK) #error "flag -mthumb-interwork missing" #endif // ADD THESE THREE LINES TO macro-assembler-arm.cc #if !defined(CAN_USE_THUMB_INSTRUCTIONS) # define CAN_USE_THUMB_INSTRUCTIONS 1 #endif // We do not support thumb inter-working with an arm architecture not supporting // the blx instruction (below v5t). If you know what CPU you are compiling for // you can use -march=armv7 or similar. #if defined(USE_THUMB_INTERWORK) && !defined(CAN_USE_THUMB_INSTRUCTIONS) # error "For thumb inter-working we require an architecture which supports blx" #endif
After adding the three lines, I just ran make again, and after a few hours more everything was fine. Next time I will try the -march or -mcpu option instead.
1 Comments.