abiosoft / colima

Container runtimes on macOS (and Linux) with minimal setup
MIT License
19.51k stars 394 forks source link

SEGFAULT building native gem extensions in v0.5.5 #794

Open bringel opened 1 year ago

bringel commented 1 year ago

Description

When trying to bundle install gems in our Gemfile that need to build some native extensions, we are getting SEGFAULTS when compiling. This is only happening on 0.5.5, downgrading to 0.5.4 resolves the problem, but there are features in 0.5.5 that we want to take advantage of. We believe that the issue has to do with the alpine version change

Dump of install:

#0 220.3 Installing sprockets-rails 3.4.2
#0 221.1 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.1 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
#0 221.2 
#0 221.2     current directory: /usr/packages/ruby-3.1.4/gems/ffi-1.15.5/ext/ffi_c
#0 221.2 /ruby/bin/ruby -I /ruby/lib/ruby/3.1.0 extconf.rb
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 checking for ffi.h... yes
#0 221.2 checking for ffi_prep_closure_loc() in -lffi... yes
#0 221.2 checking for ffi_prep_cif_var()... yes
#0 221.2 checking for ffi_raw_call()... yes
#0 221.2 checking for ffi_prep_raw_closure()... yes
#0 221.2 checking for whether -pthread is accepted as LDFLAGS... yes
#0 221.2 creating extconf.h
#0 221.2 creating Makefile
#0 221.2 
#0 221.2 current directory: /usr/packages/ruby-3.1.4/gems/ffi-1.15.5/ext/ffi_c
#0 221.2 make DESTDIR\= sitearchdir\=./.gem.20230822-8-hsb9gq
#0 221.2 sitelibdir\=./.gem.20230822-8-hsb9gq clean
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 
#0 221.2 current directory: /usr/packages/ruby-3.1.4/gems/ffi-1.15.5/ext/ffi_c
#0 221.2 make DESTDIR\= sitearchdir\=./.gem.20230822-8-hsb9gq
#0 221.2 sitelibdir\=./.gem.20230822-8-hsb9gq
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 compiling AbstractMemory.c
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 compiling ArrayType.c
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 compiling Buffer.c
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 compiling Call.c
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 compiling ClosurePool.c
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 compiling DynamicLibrary.c
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 compiling Function.c
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 compiling FunctionInfo.c
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 compiling LastError.c
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 compiling LongDouble.c
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 compiling MappedType.c
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 compiling MemoryPointer.c
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 compiling MethodHandle.c
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 compiling Platform.c
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 compiling Pointer.c
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 compiling Struct.c
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 compiling StructByValue.c
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 compiling StructLayout.c
#0 221.2 Makefile:246: recipe for target 'StructLayout.o' failed
#0 221.2 make: *** [StructLayout.o] Segmentation fault (core dumped)
#0 221.2 
#0 221.2 make failed, exit code 2
#0 221.2 
#0 221.2 Gem files will remain installed in /usr/packages/ruby-3.1.4/gems/ffi-1.15.5 for
#0 221.2 inspection.
#0 221.2 Results logged to
#0 221.2 /usr/packages/ruby-3.1.4/extensions/x86_64-linux/3.1.0/ffi-1.15.5/gem_make.out
#0 221.2 
#0 221.2   /ruby/lib/ruby/3.1.0/rubygems/ext/builder.rb:102:in `run'
#0 221.2   /ruby/lib/ruby/3.1.0/rubygems/ext/builder.rb:51:in `block in make'
#0 221.2   /ruby/lib/ruby/3.1.0/rubygems/ext/builder.rb:43:in `each'
#0 221.2   /ruby/lib/ruby/3.1.0/rubygems/ext/builder.rb:43:in `make'
#0 221.2   /ruby/lib/ruby/3.1.0/rubygems/ext/ext_conf_builder.rb:42:in `build'
#0 221.2   /ruby/lib/ruby/3.1.0/rubygems/ext/builder.rb:171:in `build_extension'
#0 221.2 /ruby/lib/ruby/3.1.0/rubygems/ext/builder.rb:205:in `block in
#0 221.2 build_extensions'
#0 221.2   /ruby/lib/ruby/3.1.0/rubygems/ext/builder.rb:202:in `each'
#0 221.2   /ruby/lib/ruby/3.1.0/rubygems/ext/builder.rb:202:in `build_extensions'
#0 221.2   /ruby/lib/ruby/3.1.0/rubygems/installer.rb:843:in `build_extensions'
#0 221.2 /usr/packages/ruby-3.1.4/gems/bundler-2.3.7/lib/bundler/rubygems_gem_installer.rb:71:in
#0 221.2 `build_extensions'
#0 221.2 /usr/packages/ruby-3.1.4/gems/bundler-2.3.7/lib/bundler/rubygems_gem_installer.rb:28:in
#0 221.2 `install'
#0 221.2 /usr/packages/ruby-3.1.4/gems/bundler-2.3.7/lib/bundler/source/rubygems.rb:204:in
#0 221.2 `install'
#0 221.2 /usr/packages/ruby-3.1.4/gems/bundler-2.3.7/lib/bundler/installer/gem_installer.rb:54:in
#0 221.2 `install'
#0 221.2 /usr/packages/ruby-3.1.4/gems/bundler-2.3.7/lib/bundler/installer/gem_installer.rb:16:in
#0 221.2 `install_from_spec'
#0 221.2 /usr/packages/ruby-3.1.4/gems/bundler-2.3.7/lib/bundler/installer/parallel_installer.rb:186:in
#0 221.2 `do_install'
#0 221.2 /usr/packages/ruby-3.1.4/gems/bundler-2.3.7/lib/bundler/installer/parallel_installer.rb:177:in
#0 221.2 `block in worker_pool'
#0 221.2 /usr/packages/ruby-3.1.4/gems/bundler-2.3.7/lib/bundler/worker.rb:62:in
#0 221.2 `apply_func'
#0 221.2 /usr/packages/ruby-3.1.4/gems/bundler-2.3.7/lib/bundler/worker.rb:57:in `block
#0 221.2 in process_queue'
#0 221.2   /usr/packages/ruby-3.1.4/gems/bundler-2.3.7/lib/bundler/worker.rb:54:in `loop'
#0 221.2 /usr/packages/ruby-3.1.4/gems/bundler-2.3.7/lib/bundler/worker.rb:54:in
#0 221.2 `process_queue'
#0 221.2 /usr/packages/ruby-3.1.4/gems/bundler-2.3.7/lib/bundler/worker.rb:91:in `block
#0 221.2 (2 levels) in create_threads'
#0 221.2 
#0 221.2 An error occurred while installing ffi (1.15.5), and Bundler cannot continue.
#0 221.2 
#0 221.2 In Gemfile:
#0 221.2   bootstrap-sass was resolved to 3.4.1, which depends on
#0 221.2     sassc was resolved to 2.4.0, which depends on
#0 221.2       ffi
#0 221.2 
#0 221.2 
#0 221.2 Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
#0 221.2 
#0 221.2     current directory: /usr/packages/ruby-3.1.4/gems/pg-1.5.3/ext
#0 221.2 /ruby/bin/ruby -I /ruby/lib/ruby/3.1.0 extconf.rb
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 Calling libpq with GVL unlocked
#0 221.2 checking for pg_config... yes
#0 221.2 Using config values from /usr/bin/pg_config
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 Using libpq from /usr/lib/x86_64-linux-gnu
#0 221.2 checking for libpq-fe.h... yes
#0 221.2 checking for libpq/libpq-fs.h... yes
#0 221.2 checking for pg_config_manual.h... yes
#0 221.2 checking for PQconnectdb() in -lpq... yes
#0 221.2 checking for PQconninfo() in libpq-fe.h... yes
#0 221.2 checking for PQsslAttribute() in libpq-fe.h... yes
#0 221.2 checking for PQresultVerboseErrorMessage() in libpq-fe.h... yes
#0 221.2 checking for PQencryptPasswordConn() in libpq-fe.h... yes
#0 221.2 checking for PQresultMemorySize() in libpq-fe.h... yes
#0 221.2 checking for PQenterPipelineMode() in libpq-fe.h... yes
#0 221.2 checking for timegm()... yes
#0 221.2 checking for rb_gc_adjust_memory_usage()... yes
#0 221.2 checking for rb_gc_mark_movable()... no
#0 221.2 checking for rb_io_wait()... yes
#0 221.2 checking for unistd.h... yes
#0 221.2 checking for inttypes.h... yes
#0 221.2 checking for C99 variable length arrays... yes
#0 221.2 creating extconf.h
#0 221.2 creating Makefile
#0 221.2 
#0 221.2 current directory: /usr/packages/ruby-3.1.4/gems/pg-1.5.3/ext
#0 221.2 make DESTDIR\= sitearchdir\=./.gem.20230822-8-3of525
#0 221.2 sitelibdir\=./.gem.20230822-8-3of525 clean
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 
#0 221.2 current directory: /usr/packages/ruby-3.1.4/gems/pg-1.5.3/ext
#0 221.2 make DESTDIR\= sitearchdir\=./.gem.20230822-8-3of525
#0 221.2 sitelibdir\=./.gem.20230822-8-3of525
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 compiling gvl_wrappers.c
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 In file included from pg.h:60:0,
#0 221.2                  from gvl_wrappers.c:6:
#0 221.2 /usr/include/postgresql/pg_config.h:1014:0: warning: "restrict" redefined
#0 221.2  #define restrict __restrict
#0 221.2  
#0 221.2 In file included from /ruby/include/ruby-3.1.0/ruby/internal/config.h:22:0,
#0 221.2                  from /ruby/include/ruby-3.1.0/ruby/ruby.h:15,
#0 221.2                  from /ruby/include/ruby-3.1.0/ruby.h:38,
#0 221.2                  from pg.h:21,
#0 221.2                  from gvl_wrappers.c:6:
#0 221.2 /ruby/include/ruby-3.1.0/x86_64-linux/ruby/config.h:77:0: note: this is the
#0 221.2 location of the previous definition
#0 221.2  #define restrict __restrict__
#0 221.2  
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-self-assign’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-parentheses-equality’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-cast-function-type’
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 compiling pg.c
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 In file included from pg.h:60:0,
#0 221.2                  from pg.c:48:
#0 221.2 /usr/include/postgresql/pg_config.h:1014:0: warning: "restrict" redefined
#0 221.2  #define restrict __restrict
#0 221.2  
#0 221.2 In file included from /ruby/include/ruby-3.1.0/ruby/internal/config.h:22:0,
#0 221.2                  from /ruby/include/ruby-3.1.0/ruby/ruby.h:15,
#0 221.2                  from /ruby/include/ruby-3.1.0/ruby.h:38,
#0 221.2                  from pg.h:21,
#0 221.2                  from pg.c:48:
#0 221.2 /ruby/include/ruby-3.1.0/x86_64-linux/ruby/config.h:77:0: note: this is the
#0 221.2 location of the previous definition
#0 221.2  #define restrict __restrict__
#0 221.2  
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-self-assign’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-parentheses-equality’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-cast-function-type’
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 compiling pg_binary_decoder.c
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 In file included from pg.h:60:0,
#0 221.2                  from pg_binary_decoder.c:8:
#0 221.2 /usr/include/postgresql/pg_config.h:1014:0: warning: "restrict" redefined
#0 221.2  #define restrict __restrict
#0 221.2  
#0 221.2 In file included from /ruby/include/ruby-3.1.0/ruby/internal/config.h:22:0,
#0 221.2                  from /ruby/include/ruby-3.1.0/ruby/ruby.h:15,
#0 221.2                  from /ruby/include/ruby-3.1.0/ruby.h:38,
#0 221.2                  from pg.h:21,
#0 221.2                  from pg_binary_decoder.c:8:
#0 221.2 /ruby/include/ruby-3.1.0/x86_64-linux/ruby/config.h:77:0: note: this is the
#0 221.2 location of the previous definition
#0 221.2  #define restrict __restrict__
#0 221.2  
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-self-assign’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-parentheses-equality’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-cast-function-type’
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 compiling pg_binary_encoder.c
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 In file included from pg.h:60:0,
#0 221.2                  from pg_binary_encoder.c:7:
#0 221.2 /usr/include/postgresql/pg_config.h:1014:0: warning: "restrict" redefined
#0 221.2  #define restrict __restrict
#0 221.2  
#0 221.2 In file included from /ruby/include/ruby-3.1.0/ruby/internal/config.h:22:0,
#0 221.2                  from /ruby/include/ruby-3.1.0/ruby/ruby.h:15,
#0 221.2                  from /ruby/include/ruby-3.1.0/ruby.h:38,
#0 221.2                  from pg.h:21,
#0 221.2                  from pg_binary_encoder.c:7:
#0 221.2 /ruby/include/ruby-3.1.0/x86_64-linux/ruby/config.h:77:0: note: this is the
#0 221.2 location of the previous definition
#0 221.2  #define restrict __restrict__
#0 221.2  
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-self-assign’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-parentheses-equality’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-cast-function-type’
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 compiling pg_coder.c
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 In file included from pg.h:60:0,
#0 221.2                  from pg_coder.c:6:
#0 221.2 /usr/include/postgresql/pg_config.h:1014:0: warning: "restrict" redefined
#0 221.2  #define restrict __restrict
#0 221.2  
#0 221.2 In file included from /ruby/include/ruby-3.1.0/ruby/internal/config.h:22:0,
#0 221.2                  from /ruby/include/ruby-3.1.0/ruby/ruby.h:15,
#0 221.2                  from /ruby/include/ruby-3.1.0/ruby.h:38,
#0 221.2                  from pg.h:21,
#0 221.2                  from pg_coder.c:6:
#0 221.2 /ruby/include/ruby-3.1.0/x86_64-linux/ruby/config.h:77:0: note: this is the
#0 221.2 location of the previous definition
#0 221.2  #define restrict __restrict__
#0 221.2  
#0 221.2 pg_coder.c:98:3: warning: braces around scalar initializer
#0 221.2    pg_compact_callback(pg_coder_compact),
#0 221.2    ^~~~~~~~~~~~~~~~~~~
#0 221.2 pg_coder.c:98:3: note: (near initialization for
#0 221.2 ‘pg_coder_type.function.dcompact’)
#0 221.2 pg_coder.c:122:3: warning: braces around scalar initializer
#0 221.2    pg_compact_callback(pg_composite_coder_compact),
#0 221.2    ^~~~~~~~~~~~~~~~~~~
#0 221.2 pg_coder.c:122:3: note: (near initialization for
#0 221.2 ‘pg_composite_coder_type.function.dcompact’)
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-self-assign’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-parentheses-equality’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-cast-function-type’
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 compiling pg_connection.c
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 In file included from pg.h:60:0,
#0 221.2                  from pg_connection.c:7:
#0 221.2 /usr/include/postgresql/pg_config.h:1014:0: warning: "restrict" redefined
#0 221.2  #define restrict __restrict
#0 221.2  
#0 221.2 In file included from /ruby/include/ruby-3.1.0/ruby/internal/config.h:22:0,
#0 221.2                  from /ruby/include/ruby-3.1.0/ruby/ruby.h:15,
#0 221.2                  from /ruby/include/ruby-3.1.0/ruby.h:38,
#0 221.2                  from pg.h:21,
#0 221.2                  from pg_connection.c:7:
#0 221.2 /ruby/include/ruby-3.1.0/x86_64-linux/ruby/config.h:77:0: note: this is the
#0 221.2 location of the previous definition
#0 221.2  #define restrict __restrict__
#0 221.2  
#0 221.2 pg_connection.c:233:3: warning: braces around scalar initializer
#0 221.2    pg_compact_callback(pgconn_gc_compact),
#0 221.2    ^~~~~~~~~~~~~~~~~~~
#0 221.2 pg_connection.c:233:3: note: (near initialization for
#0 221.2 ‘pg_connection_type.function.dcompact’)
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-self-assign’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-parentheses-equality’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-cast-function-type’
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 compiling pg_copy_coder.c
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 In file included from pg.h:60:0,
#0 221.2                  from pg_copy_coder.c:6:
#0 221.2 /usr/include/postgresql/pg_config.h:1014:0: warning: "restrict" redefined
#0 221.2  #define restrict __restrict
#0 221.2  
#0 221.2 In file included from /ruby/include/ruby-3.1.0/ruby/internal/config.h:22:0,
#0 221.2                  from /ruby/include/ruby-3.1.0/ruby/ruby.h:15,
#0 221.2                  from /ruby/include/ruby-3.1.0/ruby.h:38,
#0 221.2                  from pg.h:21,
#0 221.2                  from pg_copy_coder.c:6:
#0 221.2 /ruby/include/ruby-3.1.0/x86_64-linux/ruby/config.h:77:0: note: this is the
#0 221.2 location of the previous definition
#0 221.2  #define restrict __restrict__
#0 221.2  
#0 221.2 pg_copy_coder.c:54:3: warning: braces around scalar initializer
#0 221.2    pg_compact_callback(pg_copycoder_compact),
#0 221.2    ^~~~~~~~~~~~~~~~~~~
#0 221.2 pg_copy_coder.c:54:3: note: (near initialization for
#0 221.2 ‘pg_copycoder_type.function.dcompact’)
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-self-assign’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-parentheses-equality’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-cast-function-type’
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 compiling pg_errors.c
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 In file included from pg.h:60:0,
#0 221.2                  from pg_errors.c:6:
#0 221.2 /usr/include/postgresql/pg_config.h:1014:0: warning: "restrict" redefined
#0 221.2  #define restrict __restrict
#0 221.2  
#0 221.2 In file included from /ruby/include/ruby-3.1.0/ruby/internal/config.h:22:0,
#0 221.2                  from /ruby/include/ruby-3.1.0/ruby/ruby.h:15,
#0 221.2                  from /ruby/include/ruby-3.1.0/ruby.h:38,
#0 221.2                  from pg.h:21,
#0 221.2                  from pg_errors.c:6:
#0 221.2 /ruby/include/ruby-3.1.0/x86_64-linux/ruby/config.h:77:0: note: this is the
#0 221.2 location of the previous definition
#0 221.2  #define restrict __restrict__
#0 221.2  
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-self-assign’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-parentheses-equality’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-cast-function-type’
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 compiling pg_record_coder.c
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 In file included from pg.h:60:0,
#0 221.2                  from pg_record_coder.c:6:
#0 221.2 /usr/include/postgresql/pg_config.h:1014:0: warning: "restrict" redefined
#0 221.2  #define restrict __restrict
#0 221.2  
#0 221.2 In file included from /ruby/include/ruby-3.1.0/ruby/internal/config.h:22:0,
#0 221.2                  from /ruby/include/ruby-3.1.0/ruby/ruby.h:15,
#0 221.2                  from /ruby/include/ruby-3.1.0/ruby.h:38,
#0 221.2                  from pg.h:21,
#0 221.2                  from pg_record_coder.c:6:
#0 221.2 /ruby/include/ruby-3.1.0/x86_64-linux/ruby/config.h:77:0: note: this is the
#0 221.2 location of the previous definition
#0 221.2  #define restrict __restrict__
#0 221.2  
#0 221.2 pg_record_coder.c:46:3: warning: braces around scalar initializer
#0 221.2    pg_compact_callback(pg_recordcoder_compact),
#0 221.2    ^~~~~~~~~~~~~~~~~~~
#0 221.2 pg_record_coder.c:46:3: note: (near initialization for
#0 221.2 ‘pg_recordcoder_type.function.dcompact’)
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-self-assign’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-parentheses-equality’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-cast-function-type’
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 compiling pg_result.c
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 In file included from pg.h:60:0,
#0 221.2                  from pg_result.c:7:
#0 221.2 /usr/include/postgresql/pg_config.h:1014:0: warning: "restrict" redefined
#0 221.2  #define restrict __restrict
#0 221.2  
#0 221.2 In file included from /ruby/include/ruby-3.1.0/ruby/internal/config.h:22:0,
#0 221.2                  from /ruby/include/ruby-3.1.0/ruby/ruby.h:15,
#0 221.2                  from /ruby/include/ruby-3.1.0/ruby.h:38,
#0 221.2                  from pg.h:21,
#0 221.2                  from pg_result.c:7:
#0 221.2 /ruby/include/ruby-3.1.0/x86_64-linux/ruby/config.h:77:0: note: this is the
#0 221.2 location of the previous definition
#0 221.2  #define restrict __restrict__
#0 221.2  
#0 221.2 pg_result.c:183:3: warning: braces around scalar initializer
#0 221.2    pg_compact_callback(pgresult_gc_compact),
#0 221.2    ^~~~~~~~~~~~~~~~~~~
#0 221.2 pg_result.c:183:3: note: (near initialization for
#0 221.2 ‘pgresult_type.function.dcompact’)
#0 221.2 pg_result.c:396:1: warning: ‘static’ is not at beginning of declaration
#0 221.2 [-Wold-style-declaration]
#0 221.2  static pg_result_freeze(VALUE self)
#0 221.2  ^~~~~~
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-self-assign’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-parentheses-equality’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-cast-function-type’
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 compiling pg_text_decoder.c
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 In file included from pg.h:60:0,
#0 221.2                  from pg_text_decoder.c:32:
#0 221.2 /usr/include/postgresql/pg_config.h:1014:0: warning: "restrict" redefined
#0 221.2  #define restrict __restrict
#0 221.2  
#0 221.2 In file included from /ruby/include/ruby-3.1.0/ruby/internal/config.h:22:0,
#0 221.2                  from /ruby/include/ruby-3.1.0/ruby/ruby.h:15,
#0 221.2                  from /ruby/include/ruby-3.1.0/ruby.h:38,
#0 221.2                  from pg.h:21,
#0 221.2                  from pg_text_decoder.c:32:
#0 221.2 /ruby/include/ruby-3.1.0/x86_64-linux/ruby/config.h:77:0: note: this is the
#0 221.2 location of the previous definition
#0 221.2  #define restrict __restrict__
#0 221.2  
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-self-assign’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-parentheses-equality’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-cast-function-type’
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 compiling pg_text_encoder.c
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 In file included from pg.h:60:0,
#0 221.2                  from pg_text_encoder.c:43:
#0 221.2 /usr/include/postgresql/pg_config.h:1014:0: warning: "restrict" redefined
#0 221.2  #define restrict __restrict
#0 221.2  
#0 221.2 In file included from /ruby/include/ruby-3.1.0/ruby/internal/config.h:22:0,
#0 221.2                  from /ruby/include/ruby-3.1.0/ruby/ruby.h:15,
#0 221.2                  from /ruby/include/ruby-3.1.0/ruby.h:38,
#0 221.2                  from pg.h:21,
#0 221.2                  from pg_text_encoder.c:43:
#0 221.2 /ruby/include/ruby-3.1.0/x86_64-linux/ruby/config.h:77:0: note: this is the
#0 221.2 location of the previous definition
#0 221.2  #define restrict __restrict__
#0 221.2  
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-self-assign’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-parentheses-equality’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’
#0 221.2 cc1: warning: unrecognized command line option ‘-Wno-cast-function-type’
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 compiling pg_tuple.c
#0 221.2 <jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
#0 221.2 <jemalloc>: (This is the expected behaviour if you are running under QEMU)
#0 221.2 gcc: internal compiler error: Segmentation fault (program cc1)
#0 221.2 Please submit a full bug report,
#0 221.2 with preprocessed source if appropriate.
#0 221.2 See <file:///usr/share/doc/gcc-7/README.Bugs> for instructions.
#0 221.2 Makefile:255: recipe for target 'pg_tuple.o' failed
#0 221.2 make: *** [pg_tuple.o] Error 4
#0 221.2 
#0 221.2 make failed, exit code 2
#0 221.2 
#0 221.2 Gem files will remain installed in /usr/packages/ruby-3.1.4/gems/pg-1.5.3 for
#0 221.2 inspection.
#0 221.2 Results logged to
#0 221.2 /usr/packages/ruby-3.1.4/extensions/x86_64-linux/3.1.0/pg-1.5.3/gem_make.out
#0 221.2 
#0 221.2   /ruby/lib/ruby/3.1.0/rubygems/ext/builder.rb:102:in `run'
#0 221.2   /ruby/lib/ruby/3.1.0/rubygems/ext/builder.rb:51:in `block in make'
#0 221.2   /ruby/lib/ruby/3.1.0/rubygems/ext/builder.rb:43:in `each'
#0 221.2   /ruby/lib/ruby/3.1.0/rubygems/ext/builder.rb:43:in `make'
#0 221.2   /ruby/lib/ruby/3.1.0/rubygems/ext/ext_conf_builder.rb:42:in `build'
#0 221.2   /ruby/lib/ruby/3.1.0/rubygems/ext/builder.rb:171:in `build_extension'
#0 221.2 /ruby/lib/ruby/3.1.0/rubygems/ext/builder.rb:205:in `block in
#0 221.2 build_extensions'
#0 221.2   /ruby/lib/ruby/3.1.0/rubygems/ext/builder.rb:202:in `each'
#0 221.2   /ruby/lib/ruby/3.1.0/rubygems/ext/builder.rb:202:in `build_extensions'
#0 221.2   /ruby/lib/ruby/3.1.0/rubygems/installer.rb:843:in `build_extensions'
#0 221.2 /usr/packages/ruby-3.1.4/gems/bundler-2.3.7/lib/bundler/rubygems_gem_installer.rb:71:in
#0 221.2 `build_extensions'
#0 221.2 /usr/packages/ruby-3.1.4/gems/bundler-2.3.7/lib/bundler/rubygems_gem_installer.rb:28:in
#0 221.2 `install'
#0 221.2 /usr/packages/ruby-3.1.4/gems/bundler-2.3.7/lib/bundler/source/rubygems.rb:204:in
#0 221.2 `install'
#0 221.2 /usr/packages/ruby-3.1.4/gems/bundler-2.3.7/lib/bundler/installer/gem_installer.rb:54:in
#0 221.2 `install'
#0 221.2 /usr/packages/ruby-3.1.4/gems/bundler-2.3.7/lib/bundler/installer/gem_installer.rb:16:in
#0 221.2 `install_from_spec'
#0 221.2 /usr/packages/ruby-3.1.4/gems/bundler-2.3.7/lib/bundler/installer/parallel_installer.rb:186:in
#0 221.2 `do_install'
#0 221.2 /usr/packages/ruby-3.1.4/gems/bundler-2.3.7/lib/bundler/installer/parallel_installer.rb:177:in
#0 221.2 `block in worker_pool'
#0 221.2 /usr/packages/ruby-3.1.4/gems/bundler-2.3.7/lib/bundler/worker.rb:62:in
#0 221.2 `apply_func'
#0 221.2 /usr/packages/ruby-3.1.4/gems/bundler-2.3.7/lib/bundler/worker.rb:57:in `block
#0 221.2 in process_queue'
#0 221.2   /usr/packages/ruby-3.1.4/gems/bundler-2.3.7/lib/bundler/worker.rb:54:in `loop'
#0 221.2 /usr/packages/ruby-3.1.4/gems/bundler-2.3.7/lib/bundler/worker.rb:54:in
#0 221.2 `process_queue'
#0 221.2 /usr/packages/ruby-3.1.4/gems/bundler-2.3.7/lib/bundler/worker.rb:91:in `block
#0 221.2 (2 levels) in create_threads'
#0 221.2 
#0 221.2 An error occurred while installing pg (1.5.3), and Bundler cannot continue.
#0 221.2 
#0 221.2 In Gemfile:
#0 221.2   sequel_pg was resolved to 1.17.1, which depends on
#0 221.2     pg
------
failed to solve: process "/bin/sh -c bundle install" did not complete successfully: exit code: 5

Version

Colima Version: 0.5.5 Lima Version: Qemu Version:

Operating System

Output of colima status

$ cat /etc/os-release NAME="Alpine Linux" ID=alpine VERSION_ID=3.18.0 PRETTY_NAME="Alpine Linux v3.18" HOME_URL="https://alpinelinux.org/" BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues" BUILD_ID="" VARIANT_ID="clm"

colima version 0.5.5 git commit: 6251dc2c2c5d8197c356f0e402ad028945f0e830

runtime: docker arch: aarch64 client: v24.0.5 server: v23.0.6

I don't have the status output anymore but we are using vz and virtiofs

Reproduction Steps

  1. Update to 0.5.5
  2. In a ruby project with rails/sprockets/pg gems in the gemfile, try to bundle install

Expected behaviour

Gems should be able to build native extensions

Additional context

No response

JBergles commented 1 year ago

I'm installing python with pyenv rather than building gem extensions but I'm also seeing weird segfaults in gcc with 0.5.5

mtomilov commented 1 year ago

I also see that cross-compiling our python projects but not every single time. I'm on m2 using colima 0.5.5 with vz and virtiofs.

Sorry for reddit but this one looks very similar
https://www.reddit.com/r/docker/comments/13z70mk/cross_compilation_fails_on_m1_mac_fails_with/

luisdavim commented 1 year ago

Try starting colima with --vm-type vz --vz-rosetta

seems similar to https://github.com/abiosoft/colima/issues/165

ilqvya commented 2 months ago

Same