In regards to not being able to compile ruby again, i ran ktrace on bmake and this is what i got when it halts on compiling bigdecimal.
85350 bmake RET vfork 85383/0x14d87 85350 bmake CALL wait4(0xffffffff,0xbfbfec40,<invalid>0,0) 85350 bmake RET wait4 85383/0x14d87 85350 bmake CALL pipe 85350 bmake RET pipe 3 85350 bmake CALL vfork 85350 bmake RET vfork 85384/0x14d88 85350 bmake CALL close(0x4) 85350 bmake RET close 0 85350 bmake CALL read(0x3,0xbfbfdf90,0x400) 85350 bmake RET read 355/0x163 85350 bmake CALL read(0x3,0xbfbfdf90,0x400) 85350 bmake RET read 0 85350 bmake CALL close(0x3) 85350 bmake RET close 0 85350 bmake CALL wait4(0xffffffff,0xbfbfdf74,<invalid>0,0) 85350 bmake RET wait4 85384/0x14d88 85350 bmake CALL vfork 85350 bmake RET vfork 85385/0x14d89 85350 bmake CALL wait4(0xffffffff,0xbfbfec40,<invalid>0,0) 85350 bmake RET wait4 85385/0x14d89 85350 bmake CALL munmap(0x28172000,0x1000) 85350 bmake RET munmap 0 85350 bmake CALL vfork 85350 bmake RET vfork 85411/0x14da3 85350 bmake CALL wait4(0xffffffff,0xbfbfec40,<invalid>0,0) 85350 bmake RET wait4 85411/0x14da3 85350 bmake CALL vfork 85350 bmake RET vfork 85412/0x14da4 85350 bmake CALL wait4(0xffffffff,0xbfbfecb0,<invalid>0,0) 85350 bmake RET wait4 85412/0x14da4 85350 bmake CALL vfork 85350 bmake RET vfork 85413/0x14da5 85350 bmake CALL wait4(0xffffffff,0xbfbfecb0,<invalid>0,0) 85350 bmake RET wait4 85413/0x14da5 85350 bmake CALL vfork 85350 bmake RET vfork 85414/0x14da6 85350 bmake CALL wait4(0xffffffff,0xbfbfecb0,<invalid>0,0) 85350 bmake RET wait4 85414/0x14da6 85350 bmake CALL vfork 85350 bmake RET vfork 85415/0x14da7 85350 bmake CALL wait4(0xffffffff,0xbfbfecb0,<invalid>0,0) 85350 bmake RET wait4 85415/0x14da7 85350 bmake CALL vfork 85350 bmake RET vfork 85416/0x14da8 85350 bmake CALL wait4(0xffffffff,0xbfbfed90,<invalid>0,0) 85350 bmake RET wait4 85416/0x14da8 85350 bmake CALL vfork 85350 bmake RET vfork 85417/0x14da9 85350 bmake CALL wait4(0xffffffff,0xbfbfed90,<invalid>0,0) 85350 bmake RET wait4 85417/0x14da9 85350 bmake CALL pipe 85350 bmake RET pipe 3 85350 bmake CALL vfork 85350 bmake RET vfork 85418/0x14daa 85350 bmake CALL close(0x4) 85350 bmake RET close 0 85350 bmake CALL read(0x3,0xbfbfe150,0x400) 85350 bmake RET read 355/0x163 85350 bmake CALL read(0x3,0xbfbfe150,0x400) 85350 bmake RET read 0 85350 bmake CALL close(0x3) 85350 bmake RET close 0 85350 bmake CALL wait4(0xffffffff,0xbfbfe134,<invalid>0,0) 85350 bmake RET wait4 85418/0x14daa 85350 bmake CALL pipe 85350 bmake RET pipe 3 85350 bmake CALL vfork 85350 bmake RET vfork 85419/0x14dab 85350 bmake CALL close(0x4) 85350 bmake RET close 0 85350 bmake CALL read(0x3,0xbfbfe150,0x400) 85350 bmake RET read 355/0x163 85350 bmake CALL read(0x3,0xbfbfe150,0x400) 85350 bmake RET read 0 85350 bmake CALL close(0x3) 85350 bmake RET close 0 85350 bmake CALL wait4(0xffffffff,0xbfbfe134,<invalid>0,0) 85350 bmake RET wait4 85419/0x14dab 85350 bmake CALL vfork 85350 bmake RET vfork 85420/0x14dac 85350 bmake CALL wait4(0xffffffff,0xbfbfee00,<invalid>0,0) 85350 bmake PSIG SIGINT caught handler=0x804b380 mask=0x0 code=0x0 85350 bmake RET wait4 RESTART 85350 bmake CALL lstat(0x28346b80,0xbfbfe9c8) 85350 bmake NAMI "barrier" 85350 bmake RET lstat -1 errno 2 No such file or directory 85350 bmake CALL exit(0x2)