Alexpux / Qt-builds

Scripts for building Qt-5.x

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ruby building error

FraDiavolo7 opened this issue · comments

Trying to build QT x64 on a Win7 x64, using MSYS rev10.

During script process, an error occurs in the ruby part :
-> ruby
---> downloaded
---> unpacked
--> Empty
---> configured
--> building......error 2!

And the log file opened states :
generating id.c
compiling ../../unpack/ruby-2.0.0-p0/re.c
compiling ../../unpack/ruby-2.0.0-p0/regcomp.c
executable host ruby is required. use --with-baseruby option.
uncommon.mk:877: recipe for target `id.c' failed
make: *** [id.c] Error 1
make: *** Waiting for unfinished jobs....

I tryed adding the option in different places, no changes at all.

So before trying installing ruby, I post here.

Is there a known solution?
Have I failed to find the correct spot for the option?
Is there another option to set?

I build ruby 32-bit and 64-bit today without any problems. Try to remove folder /qt-builds/work/build-x{32,64}/ruby-2.0.0-p0 and start building again. Maybe it MSYS crash, it sometimes happen. What toolchain do you use?

Tryed again, first by removing ruby from work/build-x64, then by removing unpack/ruby (and its marker), and another one by removing also the downloaded ruby (and its marker). Nothing goes.

Something is a bit different from what I stated previously.
Not all the compilation seems to be failling, here is the ruby build log :
CC = x86_64-w64-mingw32-gcc
LD = ld
LDSHARED = x86_64-w64-mingw32-gcc -shared
CFLAGS = -march=nocona -mtune=core2 -pipe -O2 -finline-functions
XCFLAGS = -include ruby/config.h -include ruby/missing.h -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fvisibility=hidden -DRUBY_EXPORT
CPPFLAGS = -DFD_SETSIZE=2048 -Ic:/QtSDK/ported64/include -Ic:/QtSDK/ported64/include/ncurses -D_WIN32_WINNT=0x0501 -I. -I.ext/include/x64-mingw32 -I../../unpack/ruby-2.0.0-p0/include -I../../unpack/ruby-2.0.0-p0
DLDFLAGS = -Wl,--enable-auto-image-base,--enable-auto-import -Wl,--out-implib=libx64-msvcrt-ruby200.dll.a x64-msvcrt-ruby200.def -Wl,--stack,0x00200000,--enable-auto-import
SOLIBS = x64-msvcrt-ruby200.res.o -lshell32 -lws2_32 -limagehlp -lshlwapi
compiling ../../unpack/ruby-2.0.0-p0/main.c
compiling ../../unpack/ruby-2.0.0-p0/dmydln.c
compiling ../../unpack/ruby-2.0.0-p0/dmyencoding.c
compiling ../../unpack/ruby-2.0.0-p0/version.c
compiling ../../unpack/ruby-2.0.0-p0/miniprelude.c
copying dummy probes.h
compiling ../../unpack/ruby-2.0.0-p0/bignum.c
compiling ../../unpack/ruby-2.0.0-p0/class.c
compiling ../../unpack/ruby-2.0.0-p0/compar.c
compiling ../../unpack/ruby-2.0.0-p0/complex.c
compiling ../../unpack/ruby-2.0.0-p0/dir.c
compiling ../../unpack/ruby-2.0.0-p0/dln_find.c
compiling ../../unpack/ruby-2.0.0-p0/enum.c
compiling ../../unpack/ruby-2.0.0-p0/enumerator.c
compiling ../../unpack/ruby-2.0.0-p0/error.c
compiling ../../unpack/ruby-2.0.0-p0/eval.c
compiling ../../unpack/ruby-2.0.0-p0/load.c
compiling ../../unpack/ruby-2.0.0-p0/proc.c
compiling ../../unpack/ruby-2.0.0-p0/file.c
compiling ../../unpack/ruby-2.0.0-p0/gc.c
compiling ../../unpack/ruby-2.0.0-p0/hash.c
compiling ../../unpack/ruby-2.0.0-p0/inits.c
compiling ../../unpack/ruby-2.0.0-p0/io.c
compiling ../../unpack/ruby-2.0.0-p0/marshal.c
compiling ../../unpack/ruby-2.0.0-p0/math.c
compiling ../../unpack/ruby-2.0.0-p0/node.c
compiling ../../unpack/ruby-2.0.0-p0/numeric.c
compiling ../../unpack/ruby-2.0.0-p0/object.c
compiling ../../unpack/ruby-2.0.0-p0/pack.c
copying lex.c
generating id.c
compiling ../../unpack/ruby-2.0.0-p0/process.c
executable host ruby is required. use --with-baseruby option.
uncommon.mk:877: recipe for target `id.c' failed
make: *** [id.c] Error 1
make: *** Waiting for unfinished jobs....

So it seems that just generation of id.c is failing.

To answer your question, as it is my first attempt, I build with all default settings. Nothing but a clean environment straightly downloaded from you Git rep, and following the procedure on your GitHub page : https://github.com/Alexpux/Qt-builds

Ok. Try next:

  • open qt-builds/scenarious/ruby.sh script in notepad
  • in pkg_build function replace ${MAKE_OPTS} with -j1 and save script
  • remove work/build-x64/ruby-2.0.0-p0 folder
  • start building again

There seem to be no change :
CC = x86_64-w64-mingw32-gcc
LD = ld
LDSHARED = x86_64-w64-mingw32-gcc -shared
CFLAGS = -march=nocona -mtune=core2 -pipe -O2 -finline-functions
XCFLAGS = -include ruby/config.h -include ruby/missing.h -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fvisibility=hidden -DRUBY_EXPORT
CPPFLAGS = -DFD_SETSIZE=2048 -Ic:/QtSDK/ported64/include -Ic:/QtSDK/ported64/include/ncurses -D_WIN32_WINNT=0x0501 -I. -I.ext/include/x64-mingw32 -I../../unpack/ruby-2.0.0-p0/include -I../../unpack/ruby-2.0.0-p0
DLDFLAGS = -Wl,--enable-auto-image-base,--enable-auto-import -Wl,--out-implib=libx64-msvcrt-ruby200.dll.a x64-msvcrt-ruby200.def -Wl,--stack,0x00200000,--enable-auto-import
SOLIBS = x64-msvcrt-ruby200.res.o -lshell32 -lws2_32 -limagehlp -lshlwapi
compiling ../../unpack/ruby-2.0.0-p0/main.c
compiling ../../unpack/ruby-2.0.0-p0/dmydln.c
compiling ../../unpack/ruby-2.0.0-p0/dmyencoding.c
compiling ../../unpack/ruby-2.0.0-p0/version.c
compiling ../../unpack/ruby-2.0.0-p0/dmyversion.c
compiling ../../unpack/ruby-2.0.0-p0/miniprelude.c
copying dummy probes.h
compiling ../../unpack/ruby-2.0.0-p0/array.c
compiling ../../unpack/ruby-2.0.0-p0/bignum.c
compiling ../../unpack/ruby-2.0.0-p0/class.c
compiling ../../unpack/ruby-2.0.0-p0/compar.c
compiling ../../unpack/ruby-2.0.0-p0/complex.c
compiling ../../unpack/ruby-2.0.0-p0/dir.c
compiling ../../unpack/ruby-2.0.0-p0/dln_find.c
compiling ../../unpack/ruby-2.0.0-p0/enum.c
compiling ../../unpack/ruby-2.0.0-p0/enumerator.c
compiling ../../unpack/ruby-2.0.0-p0/error.c
compiling ../../unpack/ruby-2.0.0-p0/eval.c
compiling ../../unpack/ruby-2.0.0-p0/load.c
compiling ../../unpack/ruby-2.0.0-p0/proc.c
compiling ../../unpack/ruby-2.0.0-p0/file.c
compiling ../../unpack/ruby-2.0.0-p0/gc.c
compiling ../../unpack/ruby-2.0.0-p0/hash.c
compiling ../../unpack/ruby-2.0.0-p0/inits.c
compiling ../../unpack/ruby-2.0.0-p0/io.c
compiling ../../unpack/ruby-2.0.0-p0/marshal.c
compiling ../../unpack/ruby-2.0.0-p0/math.c
compiling ../../unpack/ruby-2.0.0-p0/node.c
compiling ../../unpack/ruby-2.0.0-p0/numeric.c
compiling ../../unpack/ruby-2.0.0-p0/object.c
compiling ../../unpack/ruby-2.0.0-p0/pack.c
copying lex.c
generating id.c
executable host ruby is required. use --with-baseruby option.
uncommon.mk:877: recipe for target `id.c' failed
make: *** [id.c] Error 1

Here are the change made in case I was not accurate :
pkg_build() {
local _make_flags=(
-j1
)
local _allmake="${_make_flags[@]}"
func_make
${P_V}
"/bin/make"
"$_allmake"
"building..."
"built"
}

Look at my build log at http://pastebin.com/zsR52JFE. I don't see any "generating id.c"

Also look at http://bugs.ruby-lang.org/issues/3008. Problem are the same I think

Ok, it's past the ruby part \o/

The correction made are dirty but working, didn't take the time to do it clean and shiny :s
in the ruby.sh scenario :

added WorkDir=work/unpack/$P_V
under DEPENDS=()

added
touch $WorkDir/.revision.time
touch $WorkDir/ChangeLog
touch $WorkDir/configure
touch $WorkDir/enc/trans/big5.c
touch $WorkDir/enc/trans/chinese.c
touch $WorkDir/enc/trans/escape.c
touch $WorkDir/enc/trans/gb18030.c
touch $WorkDir/enc/trans/gbk.c
touch $WorkDir/enc/trans/iso2022.c
touch $WorkDir/enc/trans/japanese.c
touch $WorkDir/enc/trans/japanese_euc.c
touch $WorkDir/enc/trans/japanese_sjis.c
touch $WorkDir/enc/trans/korean.c
touch $WorkDir/enc/trans/newline.c
touch $WorkDir/enc/trans/single_byte.c
touch $WorkDir/enc/trans/utf_16_32.c
touch $WorkDir/encdb.h
touch $WorkDir/ext/ripper/eventids1.c
touch $WorkDir/ext/ripper/eventids2table.c
touch $WorkDir/ext/ripper/ripper.c
touch $WorkDir/ext/ripper/ripper.y
touch $WorkDir/ext/ripper/y.output
touch $WorkDir/golf_prelude.c
touch $WorkDir/insns.inc
touch $WorkDir/insns_info.inc
touch $WorkDir/known_errors.inc
touch $WorkDir/lex.c
touch $WorkDir/miniprelude.c
touch $WorkDir/newline.c
touch $WorkDir/node_name.inc
touch $WorkDir/opt_sc.inc
touch $WorkDir/optinsn.inc
touch $WorkDir/optunifs.inc
touch $WorkDir/parse.c
touch $WorkDir/parse.h
touch $WorkDir/revision.h
touch $WorkDir/string.c
touch $WorkDir/transdb.h
touch $WorkDir/version.h
touch $WorkDir/vm.inc
touch $WorkDir/vmtc.inc
touch $WorkDir/id.c

before func_configure $P_V $P_V "$_allconf"
in the src_configure function

Thanks for your time and help

Do you use GCC-4.8.0 toolchain or GCC-4.7.2 toolchain?

It seems 4.8.0, no other toolchain are installed, and as I did not specified anything, looks like the default feature...

To solve this problem replace /bin/tar with tar from msys-rev9 and delete all ruby folders. Then restart build