Project

General

Profile

Bug #15328

mjit_worker.c fails to build

Added by vo.x (Vit Ondruch) 6 months ago. Updated 6 months ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:89926]

Description

njti_worker.c fails to build with r65905:

---
... snip ...

Configuration summary for ruby version 2.6.0

   * Installation prefix: /usr
   * exec prefix:         /usr
   * arch:                x86_64-linux
   * site arch:           ${arch}
   * RUBY_BASE_NAME:      ruby
   * enable shared:       yes
   * ruby lib prefix:     ${exec_prefix}/share/ruby
   * site libraries path: ${sitearchlibdir}/${RUBY_BASE_NAME}
   * vendor path:         /usr/share/ruby/vendor_ruby
   * target OS:           linux
   * compiler:            gcc
   * with pthread:        yes
   * enable shared libs:  yes
   * dynamic library ext: so
   * CFLAGS:              ${optflags} ${debugflags} ${warnflags}
   * LDFLAGS:             -L. -Wl,-z,relro -Wl,--as-needed  -Wl,-z,now \
                          -specs=/usr/lib/rpm/redhat/redhat-hardened-ld \
                          -fstack-protector-strong -rdynamic \
                          -Wl,-export-dynamic
   * DLDFLAGS:            -Wl,-z,relro -Wl,--as-needed  -Wl,-z,now \
                          -specs=/usr/lib/rpm/redhat/redhat-hardened-ld
   * optflags:            -O3
   * debugflags:          -ggdb3
   * warnflags:           -Wall -Wextra -Werror=declaration-after-statement \
                          -Werror=deprecated-declarations \
                          -Werror=duplicated-cond \
                          -Werror=implicit-function-declaration \
                          -Werror=implicit-int \
                          -Werror=misleading-indentation \
                          -Werror=pointer-arith -Werror=restrict \
                          -Werror=write-strings -Wimplicit-fallthrough=0 \
                          -Wmissing-noreturn -Wno-cast-function-type \
                          -Wno-constant-logical-operand -Wno-long-long \
                          -Wno-missing-field-initializers \
                          -Wno-overlength-strings \
                          -Wno-packed-bitfield-compat \
                          -Wno-parentheses-equality -Wno-self-assign \
                          -Wno-tautological-compare -Wno-unused-parameter \
                          -Wno-unused-value -Wsuggest-attribute=format \
                          -Wsuggest-attribute=noreturn -Wunused-variable
   * strip command:       strip -S -x
   * install doc:         yes
   * JIT support:         yes
   * man page type:       doc

---
+ make -j4 'COPY=cp -p' Q=
    BASERUBY = echo executable host ruby is required.  use --with-baseruby option.; false
    CC = gcc
    LD = ld
    LDSHARED = gcc -shared
    CFLAGS = -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -m64
    XCFLAGS = -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-strict-overflow -DRUBY_DEVEL=1 -fvisibility=hidden -fexcess-precision=standard -DRUBY_EXPORT -DCANONICALIZATION_FOR_MATHN
    CPPFLAGS =   -I. -I.ext/include/x86_64-linux -I./include -I. -I./enc/unicode/10.0.0 
    DLDFLAGS = -Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-soname,libruby.so.2.6 -fstack-protector-strong  -m64
    SOLIBS = -lpthread -lrt -lrt -lgmp -ldl -lcrypt -lm 
    LANG = C
    LC_ALL = 
    LC_CTYPE = 
gcc (GCC) 8.2.1 20181105 (Red Hat 8.2.1-5)

... snip ...

compiling mjit.c
gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -m64 -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-strict-overflow -DRUBY_DEVEL=1 -fvisibility=hidden -fexcess-precision=standard -DRUBY_EXPORT -DCANONICALIZATION_FOR_MATHN   -I. -I.ext/include/x86_64-linux -I./include -I. -I./enc/unicode/10.0.0  -o mjit.o -c mjit.c
In file included from mjit_worker.c:236,
                 from mjit.c:18:
mjit_config.h:13:26: error: 'm64' undeclared here (not in a function); did you mean 'a64l'?
 #define MJIT_ARCHFLAG   -m64 "-m64",
                          ^~~
mjit_config.h:6:26: note: in expansion of macro 'MJIT_ARCHFLAG'
 #define MJIT_CFLAGS      MJIT_ARCHFLAG "-w",
                          ^~~~~~~~~~~~~
mjit_worker.c:248:20: note: in expansion of macro 'MJIT_CFLAGS'
     MJIT_CC_COMMON MJIT_CFLAGS GCC_PIC_FLAGS
                    ^~~~~~~~~~~
mjit_config.h:13:30: error: expected '}' before string constant
 #define MJIT_ARCHFLAG   -m64 "-m64",
                              ^~~~~~
mjit_config.h:6:26: note: in expansion of macro 'MJIT_ARCHFLAG'
 #define MJIT_CFLAGS      MJIT_ARCHFLAG "-w",
                          ^~~~~~~~~~~~~
mjit_worker.c:248:20: note: in expansion of macro 'MJIT_CFLAGS'
     MJIT_CC_COMMON MJIT_CFLAGS GCC_PIC_FLAGS
                    ^~~~~~~~~~~
In file included from mjit.c:18:
mjit_worker.c:247:45: note: to match this '{'
 static const char *const CC_COMMON_ARGS[] = {
                                             ^
In file included from mjit_worker.c:236,
                 from mjit.c:18:
mjit_config.h:13:25: error: wrong type argument to unary minus
 #define MJIT_ARCHFLAG   -m64 "-m64",
                         ^
mjit_config.h:10:26: note: in expansion of macro 'MJIT_ARCHFLAG'
 #define MJIT_DLDFLAGS    MJIT_ARCHFLAG "-Wl,-z,relro", "-Wl,--as-needed", "-Wl,-z,now", "-specs=/usr/lib/rpm/redhat/redhat-hardened-ld",
                          ^~~~~~~~~~~~~
mjit_worker.c:261:5: note: in expansion of macro 'MJIT_DLDFLAGS'
     MJIT_DLDFLAGS
     ^~~~~~~~~~~~~
mjit_config.h:13:25: warning: initialization of 'const char *' from incompatible pointer type 'const char * const*' [-Wincompatible-pointer-types]
 #define MJIT_ARCHFLAG   -m64 "-m64",
                         ^
mjit_config.h:10:26: note: in expansion of macro 'MJIT_ARCHFLAG'
 #define MJIT_DLDFLAGS    MJIT_ARCHFLAG "-Wl,-z,relro", "-Wl,--as-needed", "-Wl,-z,now", "-specs=/usr/lib/rpm/redhat/redhat-hardened-ld",
                          ^~~~~~~~~~~~~
mjit_worker.c:261:5: note: in expansion of macro 'MJIT_DLDFLAGS'
     MJIT_DLDFLAGS
     ^~~~~~~~~~~~~
mjit_config.h:13:25: note: (near initialization for 'CC_DLDFLAGS_ARGS[0]')
 #define MJIT_ARCHFLAG   -m64 "-m64",
                         ^
mjit_config.h:10:26: note: in expansion of macro 'MJIT_ARCHFLAG'
 #define MJIT_DLDFLAGS    MJIT_ARCHFLAG "-Wl,-z,relro", "-Wl,--as-needed", "-Wl,-z,now", "-specs=/usr/lib/rpm/redhat/redhat-hardened-ld",
                          ^~~~~~~~~~~~~
mjit_worker.c:261:5: note: in expansion of macro 'MJIT_DLDFLAGS'
     MJIT_DLDFLAGS
     ^~~~~~~~~~~~~
mjit_config.h:13:25: error: initializer element is not constant
 #define MJIT_ARCHFLAG   -m64 "-m64",
                         ^
mjit_config.h:10:26: note: in expansion of macro 'MJIT_ARCHFLAG'
 #define MJIT_DLDFLAGS    MJIT_ARCHFLAG "-Wl,-z,relro", "-Wl,--as-needed", "-Wl,-z,now", "-specs=/usr/lib/rpm/redhat/redhat-hardened-ld",
                          ^~~~~~~~~~~~~
mjit_worker.c:261:5: note: in expansion of macro 'MJIT_DLDFLAGS'
     MJIT_DLDFLAGS
     ^~~~~~~~~~~~~
mjit_config.h:13:25: note: (near initialization for 'CC_DLDFLAGS_ARGS[0]')
 #define MJIT_ARCHFLAG   -m64 "-m64",
                         ^
mjit_config.h:10:26: note: in expansion of macro 'MJIT_ARCHFLAG'
 #define MJIT_DLDFLAGS    MJIT_ARCHFLAG "-Wl,-z,relro", "-Wl,--as-needed", "-Wl,-z,now", "-specs=/usr/lib/rpm/redhat/redhat-hardened-ld",
                          ^~~~~~~~~~~~~
mjit_worker.c:261:5: note: in expansion of macro 'MJIT_DLDFLAGS'
     MJIT_DLDFLAGS
     ^~~~~~~~~~~~~
mjit_config.h:13:30: error: expected '}' before string constant
 #define MJIT_ARCHFLAG   -m64 "-m64",
                              ^~~~~~
mjit_config.h:10:26: note: in expansion of macro 'MJIT_ARCHFLAG'
 #define MJIT_DLDFLAGS    MJIT_ARCHFLAG "-Wl,-z,relro", "-Wl,--as-needed", "-Wl,-z,now", "-specs=/usr/lib/rpm/redhat/redhat-hardened-ld",
                          ^~~~~~~~~~~~~
mjit_worker.c:261:5: note: in expansion of macro 'MJIT_DLDFLAGS'
     MJIT_DLDFLAGS
     ^~~~~~~~~~~~~
In file included from mjit.c:18:
mjit_worker.c:260:47: note: to match this '{'
 static const char *const CC_DLDFLAGS_ARGS[] = {
                                               ^
make: *** [Makefile:413: mjit.o] Error 1
make: *** Waiting for unfinished jobs....

Previously, I tested preview3, which worked fine.


Related issues

Related to Ruby trunk - Bug #15319: Since r65735, tool/mjit_archflag.sh related error on Solaris 10ClosedActions

Associated revisions

Revision 65918
Added by nobu (Nobuyoshi Nakada) 6 months ago

mjit_archflag.sh: fix bare word in the header

[ruby-dev:50674] [Bug #15319]

History

#1

Updated by nobu (Nobuyoshi Nakada) 6 months ago

  • Related to Bug #15319: Since r65735, tool/mjit_archflag.sh related error on Solaris 10 added
#2

Updated by nobu (Nobuyoshi Nakada) 6 months ago

  • Status changed from Open to Closed

Updated by vo.x (Vit Ondruch) 6 months ago

Thx, testing with r65928, I got past that point.

Also available in: Atom PDF