fluent / fluentd

Fluentd: Unified Logging Layer (project under CNCF)
https://www.fluentd.org
Apache License 2.0
12.82k stars 1.34k forks source link

Falied to install FluentD on Solaris 10: cannot use v8plus instructions in a non-v8plus target binary #272

Closed rahuldahiya closed 10 years ago

rahuldahiya commented 10 years ago

Host and architecture: SunOS 5.10 Generic_147440-01 sun4u sparc SUNW,Sun-Fire-V240

Ruby:

bash-4.2$ ruby --version
ruby 1.9.3p545 (2014-02-24 revision 45159) [sparc-solaris2.10]

Error detail:

ERROR:  Error installing fluentd-0.10.44.gem:
        ERROR: Failed to build gem native extension.

        /opt/local/bin/ruby extconf.rb
checking for rb_thread_blocking_region()... yes
checking for rb_thread_alone()... yes
checking for rb_str_set_len()... yes
checking for clock_gettime() in -lrt... yes
checking for sys/select.h... yes
checking for poll.h... yes
checking for sys/epoll.h... no
checking for sys/event.h... no
checking for port.h... yes
checking for sys/resource.h... yes
checking for sysctlbyname() in sys/param.h,sys/sysctl.h... no
creating Makefile

...
...
...
...
...
...

./libev/ev.c:3252: warning: control reaches end of non-void function
/usr/ccs/bin/as: "/var/tmp//ccjQQ8rr.s", line 963: error: cannot use v8plus instructions in a non-v8plus target binary
/usr/ccs/bin/as: "/var/tmp//ccjQQ8rr.s", line 1010: error: cannot use v8plus instructions in a non-v8plus target binary
/usr/ccs/bin/as: "/var/tmp//ccjQQ8rr.s", line 1019: error: cannot use v8plus instructions in a non-v8plus target binary
/usr/ccs/bin/as: "/var/tmp//ccjQQ8rr.s", line 1062: error: cannot use v8plus instructions in a non-v8plus target binary
/usr/ccs/bin/as: "/var/tmp//ccjQQ8rr.s", line 1076: error: cannot use v8plus instructions in a non-v8plus target binary
/usr/ccs/bin/as: "/var/tmp//ccjQQ8rr.s", line 1127: error: cannot use v8plus instructions in a non-v8plus target binary
/usr/ccs/bin/as: "/var/tmp//ccjQQ8rr.s", line 1148: error: cannot use v8plus instructions in a non-v8plus target binary
/usr/ccs/bin/as: "/var/tmp//ccjQQ8rr.s", line 1157: error: cannot use v8plus instructions in a non-v8plus target binary
/usr/ccs/bin/as: "/var/tmp//ccjQQ8rr.s", line 1161: error: cannot use v8plus instructions in a non-v8plus target binary
/usr/ccs/bin/as: "/var/tmp//ccjQQ8rr.s", line 1171: error: cannot use v8plus instructions in a non-v8plus target binary
/usr/ccs/bin/as: "/var/tmp//ccjQQ8rr.s", line 6265: error: cannot use v8plus instructions in a non-v8plus target binary
/usr/ccs/bin/as: "/var/tmp//ccjQQ8rr.s", line 6403: error: cannot use v8plus instructions in a non-v8plus target binary
/usr/ccs/bin/as: "/var/tmp//ccjQQ8rr.s", line 9951: error: cannot use v8plus instructions in a non-v8plus target binary
/usr/ccs/bin/as: "/var/tmp//ccjQQ8rr.s", line 10027: error: cannot use v8plus instructions in a non-v8plus target binary
/usr/ccs/bin/as: "/var/tmp//ccjQQ8rr.s", line 12910: error: cannot use v8plus instructions in a non-v8plus target binary
/usr/ccs/bin/as: "/var/tmp//ccjQQ8rr.s", line 12919: error: cannot use v8plus instructions in a non-v8plus target binary
/usr/ccs/bin/as: "/var/tmp//ccjQQ8rr.s", line 12923: error: cannot use v8plus instructions in a non-v8plus target binary
/usr/ccs/bin/as: "/var/tmp//ccjQQ8rr.s", line 12933: error: cannot use v8plus instructions in a non-v8plus target binary
*** Error code 1
The following command caused the error:
gcc -I. -I/opt/local/include/ruby-1.9.1/sparc-solaris2.10 -I/opt/local/include/ruby-1.9.1/ruby/backward -I/opt/local/include/ruby-1.9.1 -I. -DRUBY_VERSION_CODE=193 -DHAVE_RB_THREAD_BLOCKING_REGION -DHAVE_RB_THREAD_BLOCKING_REGION -DHAVE_RB_THREAD_ALONE -DHAVE_RB_THREAD_ALONE -DHAVE_RB_STR_SET_LEN -DHAVE_RB_STR_SET_LEN -DHAVE_SYS_SELECT_H -DEV_USE_SELECT -DHAVE_POLL_H -DEV_USE_POLL -DHAVE_PORT_H -DEV_USE_PORT -DHAVE_SYS_RESOURCE_H -DHAVE_SYS_RESOURCE_H  -D_FILE_OFFSET_BITS=64  -I/usr/local/lib/include -fPIC -O3 -ggdb -Wall -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration  -fPIC  -o libev.o -c libev.c
make: Fatal error: Command failed for target `libev.o'

Gem files will remain installed in /opt/local/lib/ruby/gems/1.9.1/gems/cool.io-1.2.1 for inspection.
rahuldahiya commented 10 years ago

I think there a problem while compiling the cool.io rubygem. It seems that -xarch=generic compiles as sparcv8, which does not include them, hence the compiler error. If you want to compile it, you will need to specify: -xarch=v8plus

Link:

https://community.oracle.com/thread/1921154?start=0&tstart=0

repeatedly commented 10 years ago

I don't have a Solaris machine and knowledge. If you can fix the problem of Cool.io gems, please send a pull request to Cool.io.

rahuldahiya commented 10 years ago

I was able to run it by upgrading the bash to v4.3 and gcc version to 4.8.2. Earlier I had bash version 3.2 and gcc version 3.4.3.

repeatedly commented 10 years ago

So, upgrading gcc resolves the problem?

rahuldahiya commented 10 years ago

Yes it does. On 14 Mar 2014 14:58, "Masahiro Nakagawa" notifications@github.com wrote:

So, upgrading gcc resolves the problem?

Reply to this email directly or view it on GitHubhttps://github.com/fluent/fluentd/issues/272#issuecomment-37629415 .

repeatedly commented 10 years ago

Okay. gcc 3.x is too old. I decided to stop such old version support.