On 2011-06-27, Jeremy Evans <[email protected]> wrote:
> Tested on amd64.  Version 4.0.0 has a new dependency on raindrops which
> for non-GCC4 arches requires the libatomic_ops package.  I don't have
> access to a non-GCC4 arch, so I'd appreciate it if someone could test
> there.

As you're aware you need to do the MODGCC3_ARCHS check *after*
.include'ing bsd.port.mk, but this is messing things up when you have
the ruby module in there as well. Although make show=BUILD_DEPENDS
appears correct, only the ruby-related packages are actually checked;
see build log below.

Unless someone has a clever idea I think the simplest way forward is to
use something like this, it does build successfully with this on arm.

# XXX only actually required for gcc2/3 arch
BUILD_DEPENDS +=        libatomic_ops-*:devel/boehm-gc,-atomic



<sthen@kaffir:/usr/ports/mystuff/www/ruby-raindrops:50>$ make 
===>  ruby-raindrops-0.7.0 depends on: ruby->=1.8,<1.9 - found
===>  ruby-raindrops-0.7.0 depends on: ruby-gems->=1.3.7p0 - found
===>  Verifying specs: c ruby18 m c ruby18 m
===>  found c.58.3 ruby18.0.0 m.5.3
===>  Checking files for ruby-raindrops-0.7.0
`/usr/ports/distfiles/raindrops-0.7.0.gem' is up to date.
>> (SHA256) raindrops-0.7.0.gem: OK
===>  Extracting for ruby-raindrops-0.7.0
mkdir -p /usr/obj/ports/raindrops-0.7.0/raindrops-0.7.0 
/usr/obj/ports/raindrops-0.7.0/gem-content
cd /usr/obj/ports/raindrops-0.7.0/gem-content && tar -xf 
/usr/ports/distfiles/raindrops-0.7.0.gem
cd /usr/obj/ports/raindrops-0.7.0/raindrops-0.7.0 && tar -xzf 
/usr/obj/ports/raindrops-0.7.0/gem-content/data.tar.gz && rm 
/usr/obj/ports/raindrops-0.7.0/gem-content/data.tar.gz
gzcat /usr/obj/ports/raindrops-0.7.0/gem-content/metadata.gz > 
/usr/obj/ports/raindrops-0.7.0/raindrops-0.7.0/.metadata
rm -f /usr/obj/ports/raindrops-0.7.0/gem-content/*.gz.sig
===>  Patching for ruby-raindrops-0.7.0
===>   Applying OpenBSD patch patch-pkg_mk
Hmm...  Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|$OpenBSD$
|--- pkg.mk.orig        Mon Jun 27 10:49:35 2011
|+++ pkg.mk     Mon Jun 27 10:49:43 2011
--------------------------
Patching file pkg.mk using Plan A...
Hunk #1 succeeded at 146.
done
===>  Configuring for ruby-raindrops-0.7.0
===>  Building for ruby-raindrops-0.7.0
if [ -f /usr/obj/ports/raindrops-0.7.0/raindrops-0.7.0/.metadata ]; then  cd 
/usr/obj/ports/raindrops-0.7.0/raindrops-0.7.0 && gzip .metadata &&  mv 
.metadata.gz /usr/obj/ports/raindrops-0.7.0/gem-content/metadata.gz;  fi
cd /usr/obj/ports/raindrops-0.7.0/raindrops-0.7.0 && find . -type f \! -name 
'*.orig'  -print |  pax -wz -s '/^\.\///' -f 
/usr/obj/ports/raindrops-0.7.0/gem-content/data.tar.gz
cd /usr/obj/ports/raindrops-0.7.0/gem-content && tar -cf 
/usr/obj/ports/raindrops-0.7.0/raindrops-0.7.0.gem *.gz
mkdir -p /usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem
env -i 
PATH='/usr/obj/ports/raindrops-0.7.0/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/bin:/usr/X11R6/bin'
 PREFIX='/usr/local'  LOCALBASE='/usr/local' DEPBASE='/usr/local' 
X11BASE='/usr/X11R6'  CFLAGS='-O2 -pipe'  TRUEPREFIX='/usr/local' DESTDIR=''  
HOME='/raindrops-0.7.0_writes_to_HOME' ELF_TOOLCHAIN=yes COMPILER_VERSION=gcc3  
PICFLAG=-fpic ASPICFLAG=  BINGRP=bin BINOWN=root BINMODE=555 NONBINMODE=444 
DIRMODE=755  INSTALL_COPY=-c INSTALL_STRIP=-s  MANGRP=bin MANOWN=root 
MANMODE=444 BSD_INSTALL_PROGRAM="install -c -s -o root -g bin -m 555"  
BSD_INSTALL_SCRIPT="install -c -o root -g bin -m 555"  
BSD_INSTALL_DATA="install -c -o root -g bin -m 444"  BSD_INSTALL_MAN="install 
-c -o root -g bin -m 444"  BSD_INSTALL_PROGRAM_DIR="install -d -o root -g bin 
-m 755"  BSD_INSTALL_SCRIPT_DIR="install -d -o root -g bin -m 755"  
BSD_INSTALL_DATA_DIR="install -d -o root -g bin -m 755"  
BSD_INSTALL_MAN_DIR="install -d -o root -g bin -m 755" 
HOME=/usr/obj/ports/raindrops-0.7.!
 0/gem-tmp/.gem/.. GEM_HOME=/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem  
/usr/local/bin/gem18 install --local --no-rdoc --no-ri --no-force --verbose 
--backtrace  --user-install /usr/obj/ports/raindrops-0.7.0/raindrops-0.7.0.gem  
-- 
Installing gem raindrops-0.7.0
Using local gem 
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/cache/raindrops-0.7.0.gem
WARNING:  You don't have 
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/../.gem/ruby/1.8/bin in your PATH,
          gem executables will not run.
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/.document
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/.gitignore
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/.manifest
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/.wrongdoc.yml
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/COPYING
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/ChangeLog
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/GIT-VERSION-FILE
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/GIT-VERSION-GEN
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/GNUmakefile
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/Gemfile
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/LATEST
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/LICENSE
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/NEWS
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/README
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/Rakefile
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/TODO
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/examples/linux-listener-stats.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/examples/middleware.ru
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/examples/watcher.ru
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/examples/watcher_demo.ru
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/examples/zbatery.conf.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/ext/raindrops/extconf.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/ext/raindrops/linux_inet_diag.c
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/ext/raindrops/linux_tcp_info.c
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/ext/raindrops/my_fileno.h
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/ext/raindrops/raindrops.c
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/ext/raindrops/raindrops_atomic.h
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/lib/raindrops.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/lib/raindrops/aggregate.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/lib/raindrops/aggregate/last_data_recv.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/lib/raindrops/aggregate/pmq.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/lib/raindrops/last_data_recv.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/lib/raindrops/linux.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/lib/raindrops/middleware.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/lib/raindrops/middleware/proxy.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/lib/raindrops/struct.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/lib/raindrops/watcher.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/pkg.mk
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/raindrops.gemspec
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/setup.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/ipv6_enabled.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/rack_unicorn.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/test_aggregate_pmq.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/test_inet_diag_socket.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/test_last_data_recv_unicorn.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/test_linux.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/test_linux_all_tcp_listen_stats.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/test_linux_all_tcp_listen_stats_leak.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/test_linux_ipv6.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/test_linux_middleware.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/test_linux_tcp_info.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/test_middleware.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/test_middleware_unicorn.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/test_middleware_unicorn_ipv6.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/test_raindrops.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/test_raindrops_gc.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/test_struct.rb
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/test/test_watcher.rb
Building native extensions.  This could take a while...
ERROR:  Error installing /usr/obj/ports/raindrops-0.7.0/raindrops-0.7.0.gem:
        ERROR: Failed to build gem native extension.

/usr/local/bin/ruby18 extconf.rb
checking for mmap() in sys/mman.h... yes
checking for munmap() in sys/mman.h... yes
checking for mremap() in sys/mman.h... no
checking for getpagesize() in unistd.h... yes
checking for rb_thread_blocking_region()... no
checking for rb_thread_io_blocking_region()... no
checking for GCC 4+ atomic builtins... no
checking for atomic_ops.h... no

libatomic_ops is required if GCC 4+ is not used.
See http://www.hpl.hp.com/research/linux/atomic_ops/

Users of Debian-based distros may run:

  apt-get install libatomic-ops-dev
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
        --with-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=/usr/local/bin/ruby18
        --with-atomic_ops-dir
        --without-atomic_ops-dir
        --with-atomic_ops-include
        --without-atomic_ops-include=${atomic_ops-dir}/include
        --with-atomic_ops-lib
        --without-atomic_ops-lib=${atomic_ops-dir}/lib


Gem files will remain installed in 
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0 for 
inspection.
Results logged to 
/usr/obj/ports/raindrops-0.7.0/gem-tmp/.gem/ruby/1.8/gems/raindrops-0.7.0/ext/raindrops/gem_make.out
*** Error code 1

Stop in /usr/ports/mystuff/www/ruby-raindrops (line 338 of 
/usr/ports/lang/ruby/ruby.port.mk).
*** Error code 1


Reply via email to