Opened 3 years ago

Closed 3 years ago

#63586 closed defect (fixed)

ruby30 @3.0.2_2 +doc+gmp+jemalloc does not build, on macOS 10.11.6

Reported by: snowflake (Dave Evans) Owned by: kimuraw (kimura wataru)
Priority: Normal Milestone:
Component: ports Version: 2.7.99
Keywords: jemalloc Cc:
Port: ruby30

Description

The bug may be in jemalloc, which is not a default variant.

make[2]: Entering directory `/opt/local/var/macports/build/_Users_davidevans_macports_sources_github.com_macports_macports-ports_lang_ruby30/ruby30/work/ruby-3.0.2/ext/-test-/cxxanyargs'
compiling cxxanyargs.cpp
In file included from cxxanyargs.cpp:1:
In file included from ../../.././include/ruby/ruby.h:23:
In file included from ../../.././include/ruby/defines.h:80:
In file included from ../../.././include/ruby/missing.h:26:
/opt/local/include/jemalloc/jemalloc.h:226:28: error: exception specification in declaration does not match previous declaration
    void JEMALLOC_NOTHROW       *je_malloc(size_t size)
                                 ^
/opt/local/include/jemalloc/jemalloc.h:69:21: note: expanded from macro 'je_malloc'
#  define je_malloc malloc
                    ^
/usr/include/stdlib.h:152:7: note: previous declaration is here
void    *malloc(size_t);
         ^
In file included from cxxanyargs.cpp:1:
In file included from ../../.././include/ruby/ruby.h:23:
In file included from ../../.././include/ruby/defines.h:80:
In file included from ../../.././include/ruby/missing.h:26:
/opt/local/include/jemalloc/jemalloc.h:229:28: error: exception specification in declaration does not match previous declaration
    void JEMALLOC_NOTHROW       *je_calloc(size_t num, size_t size)
                                 ^
/opt/local/include/jemalloc/jemalloc.h:63:21: note: expanded from macro 'je_calloc'
#  define je_calloc calloc
                    ^
/usr/include/stdlib.h:140:7: note: previous declaration is here
void    *calloc(size_t, size_t);
         ^
In file included from cxxanyargs.cpp:1:
In file included from ../../.././include/ruby/ruby.h:23:
In file included from ../../.././include/ruby/defines.h:80:
In file included from ../../.././include/ruby/missing.h:26:
/opt/local/include/jemalloc/jemalloc.h:231:38: error: exception specification in declaration does not match previous declaration
JEMALLOC_EXPORT int JEMALLOC_NOTHROW    je_posix_memalign(void **memptr,
                                        ^
/opt/local/include/jemalloc/jemalloc.h:77:29: note: expanded from macro 'je_posix_memalign'
#  define je_posix_memalign posix_memalign
                            ^
/usr/include/stdlib.h:156:7: note: previous declaration is here
int      posix_memalign(void **, size_t, size_t) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0);
         ^
In file included from cxxanyargs.cpp:1:
In file included from ../../.././include/ruby/ruby.h:23:
In file included from ../../.././include/ruby/defines.h:80:
In file included from ../../.././include/ruby/missing.h:26:
/opt/local/include/jemalloc/jemalloc.h:238:28: error: exception specification in declaration does not match previous declaration
    void JEMALLOC_NOTHROW       *je_realloc(void *ptr, size_t size)
                                 ^
/opt/local/include/jemalloc/jemalloc.h:79:22: note: expanded from macro 'je_realloc'
#  define je_realloc realloc

Change History (2)

comment:1 Changed 3 years ago by kimuraw (kimura wataru)

Keywords: jemalloc added

it looks some of port:jemalloc binary distributions do not include #61419.

re-install jemalloc from source code will solve your problem.

% sudo port -ns upgrade --force jemalloc

% sudo port clean ruby30

% sudo port install ruby30 +jemalloc

note: "JEMALLOC_NOTHROW" for some jemalloc functions should be "JEMALLOC_SYS_NOTHROW".

/opt/local/include/jemalloc/jemalloc.h:226:28: error: exception specification in declaration does not match previous declaration
    void JEMALLOC_NOTHROW       *je_malloc(size_t size)
                                 ^
/opt/local/include/jemalloc/jemalloc.h:69:21: note: expanded from macro 'je_malloc'
#  define je_malloc malloc
                    ^

comment:2 Changed 3 years ago by kimura wataru <kimuraw@…>

Resolution: fixed
Status: assignedclosed

In a3f113354f39fb786cdc8e5633cb843a9674b132/macports-ports (master):

devel/jemalloc: revbump for issue 61419

closes: #63586

see: #61419

Note: See TracTickets for help on using tickets.