[prev in list] [next in list] [prev in thread] [next in thread] 

List:       ruby-core
Subject:    [ruby-core:94072] [Ruby master Bug#15726] Error compiling Ruby
From:       robin.dupret () gmail ! com
Date:       2019-07-31 13:32:31
Message-ID: redmine.journal-80302.20190731133231.15fa9bc1e8430e87 () ruby-lang ! org
[Download RAW message or body]

Issue #15726 has been updated by robin850 (Robin Dupret).


Okay, I'm sorry for the noise here. Actually this was a setup problem.

As for the strange file names, this was due to the fact that I was using Fish as the \
shell to compile Ruby ; switching to Bash fixed the problem.

As for the `ar` command being killed, this was due to the overcommit settings. \
Switching `overcommit_memory` to 1 fixed the problem.

Sorry again.

----------------------------------------
Bug #15726: Error compiling Ruby
https://bugs.ruby-lang.org/issues/15726#change-80302

* Author: robin850 (Robin Dupret)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: 2.6.2
* Backport: 2.4: UNKNOWN, 2.5: UNKNOWN, 2.6: UNKNOWN
----------------------------------------
Hello,

I'm sorry if I'm reporting that to the wrong place but the errors are so meaningless \
that it's hard to know where the issue really comes from.

Trying to install Ruby by compiling it, several errors happen. The process follows \
these commands:


``` shell
$ wget https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.2.tar.gz
$ tar -xvf ruby-2.6.2.tar.gz
$ cd ruby-2.6.2
$ ./configure
$ make V=1
```

Actually the `make` task fails. The first time, it fails at the `ar` step:

```
Makefile:283: recipe for target 'libruby-static.a' failed
make: *** [libruby-static.a] Interrupt
```

Running `make` in verbose mode show that the error happens running:

```
ar rcD  libruby-static.a dln.o localeinit.o loadpath.o array.o ast.o bignum.o class.o \
compar.o compile.o complex.o cont.o debug.o debug_counter.o dir.o dln_find.o \
encoding.o enum.o enumerator.o error.o eval.o file.ogc.o hash.o inits.o io.o iseq.o \
load.o marshal.o math.o mjit.o mjit_compile.o node.o numeric.o object.o pack.o \
parse.o proc.o process.o random.o range.o rational.o re.o regcomp.o regenc.o \
regerror.o regexec.o regparse.o regsyntax.o ruby.o safe.o signal.o sprintf.o st.o \
strftime.o string.o struct.o symbol.o thread.o time.otranscode.o transient_heap.o \
util.o variable.o version.o vm.o vm_backtrace.o vm_dump.o vm_trace.o \
coroutine/amd64/Context.o  enc/ascii.o enc/us_ascii.o enc/unicode.o enc/utf_8.o \
enc/trans/newline.o explicit_bzero.o setproctitle.o strlcat.o strlcpy.o addr2line.o  \
prelude.o dmyext.o dmyenc.o ```

Running it manually says :

```
ar: file.ogc.o: No such file or directory
```

And ditto for `time.otranscode.o` once `file.ogc.o` has been replaced with `file.o`. \
Replacing `time.otranscode.o` with `time.o` makes the error go away but running the \
command for a few seconds, then it exits with `Killed` but nothing is present in \
`dmesg`.

Trying to rerun `make`, the standard library gets compiled but it fails trying to \
compile BigDecimal with the following error:


```
In file included from bigdecimal.c:13:0:
bigdecimal.h:122:1: error: redefinition of 'rb_array_const_ptr'
 rb_array_const_ptr(VALUE a)
 ^~~~~~~~~~~~~~~~~~
In file included from bigdecimal.h:14:0,
                 from bigdecimal.c:13:
../.././include/ruby/ruby.h:2154:1: note: previous definition of 'rb_array_const_ptr' \
was here  rb_array_const_ptr(VALUE a)
 ^~~~~~~~~~~~~~~~~~
In file included from bigdecimal.c:13:0:
bigdecimal.h:139:1: error: static declaration of 'rb_sym2str' follows non-static \
declaration  rb_sym2str(VALUE sym)
 ^~~~~~~~~~
In file included from bigdecimal.h:14:0,
                 from bigdecimal.c:13:
../.././include/ruby/ruby.h:1806:7: note: previous declaration of 'rb_sym2str' was \
here  VALUE rb_sym2str(VALUE);
       ^~~~~~~~~~
bigdecimal.c:108:1: error: static declaration of 'rb_rational_num' follows non-static \
declaration  rb_rational_num(VALUE rat)
 ^~~~~~~~~~~~~~~
In file included from ../.././include/ruby/ruby.h:2111:0,
                 from bigdecimal.h:14,
                 from bigdecimal.c:13:
../.././include/ruby/intern.h:180:7: note: previous declaration of 'rb_rational_num' \
was here  VALUE rb_rational_num(VALUE rat);
       ^~~~~~~~~~~~~~~
bigdecimal.c:120:1: error: static declaration of 'rb_rational_den' follows non-static \
declaration  rb_rational_den(VALUE rat)
 ^~~~~~~~~~~~~~~
In file included from ../.././include/ruby/ruby.h:2111:0,
                 from bigdecimal.h:14,
                 from bigdecimal.c:13:
../.././include/ruby/intern.h:181:7: note: previous declaration of 'rb_rational_den' \
was here  VALUE rb_rational_den(VALUE rat);
       ^~~~~~~~~~~~~~~
cc1: warning: unrecognized command line option '-Wno-self-assign'
cc1: warning: unrecognized command line option '-Wno-parentheses-equality'
cc1: warning: unrecognized command line option '-Wno-constant-logical-operand'
cc1: warning: unrecognized command line option '-Wno-cast-function-type'
Makefile:293: recipe for target 'bigdecimal.o' failed
make[2]: *** [bigdecimal.o] Error 1
make[2]: Leaving directory '/root/ruby-2.6.2/ext/bigdecimal'
exts.mk:189: recipe for target 'ext/bigdecimal/all' failed
make[1]: *** [ext/bigdecimal/all] Error 2
make[1]: Leaving directory '/root/ruby-2.6.2'
uncommon.mk:286: recipe for target 'build-ext' failed
make: *** [build-ext] Error 2
```

Is that a bug in the compilation process or something I do wrong or missing in my \
setup ?

System configuration:

* System: Debian 9.8 Stretch (Linux Kernel 2.6.32)
* GCC: 6.3.0 20170516
* Make: 4.1
* ld: GNU ld (GNU Binutils for Debian) 2.28
* OpenSSL : 1.1.0j  20 Nov 2018
* Yacc: Bison 3.0.4

Thanks for your time !

---Files--------------------------------
config.log (1.22 MB)


-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic