The tc-has-openmp() function in the toolchain-funcs eclass assumes $T to be defined and writes to the filesystem which is not allowed in the pkg_pretend phase according to EAPI 4 and octave thus breaks EAPI-compliant package managers: octave-3.6.0> ACCESS DENIED open_wr: /test-tc-openmp.c octave-3.6.0> ISE:write_logfile unable to append logfile octave-3.6.0> ISE open_wr(/test-tc-openmp.c): Permission denied octave-3.6.0> abs_path: /test-tc-openmp.c octave-3.6.0> res_path: /test-tc-openmp.c octave-3.6.0> /usr/lib64/libsandbox.so(+0x3512)[0x7f668b8f5512] octave-3.6.0> /usr/lib64/libsandbox.so(+0x3583)[0x7f668b8f5583] octave-3.6.0> /usr/lib64/libsandbox.so(+0x4b1d)[0x7f668b8f6b1d] octave-3.6.0> /usr/lib64/libsandbox.so(open+0xbd)[0x7f668b8f8d1d] octave-3.6.0> bash[0x4654bc] octave-3.6.0> bash(do_redirections+0x5a)[0x465d9a] octave-3.6.0> bash(execute_command_internal+0x2076)[0x431aa6] octave-3.6.0> bash[0x434883] octave-3.6.0> bash(execute_command_internal+0xa46)[0x430476] octave-3.6.0> bash(execute_command+0x4e)[0x4341ce] octave-3.6.0> /proc/264717/cmdline: bash /usr/libexec/paludis/ebuild.bash /var/repositories/gentoo-x86/sci-mathematics/octave/octave-3.6.0.ebuild pretend octave-3.6.0> octave-3.6.0> /var/repositories/gentoo-x86/eclass/toolchain-funcs.eclass: line 296: 264717 Aborted cat > "${base}.c" <<-EOF octave-3.6.0> #include <omp.h> octave-3.6.0> int main() { octave-3.6.0> int nthreads, tid, ret = 0; octave-3.6.0> #pragma omp parallel private(nthreads, tid) octave-3.6.0> { octave-3.6.0> tid = omp_get_thread_num(); octave-3.6.0> nthreads = omp_get_num_threads(); ret += tid + nthreads; octave-3.6.0> } octave-3.6.0> return ret; octave-3.6.0> } octave-3.6.0> EOF octave-3.6.0> octave-3.6.0> ACCESS DENIED unlinkat: /test-tc-openmp* octave-3.6.0> ISE:write_logfile unable to append logfile octave-3.6.0> ISE unlinkat(/test-tc-openmp*): Permission denied octave-3.6.0> abs_path: /test-tc-openmp* octave-3.6.0> res_path: /test-tc-openmp* octave-3.6.0> /usr/lib64/libsandbox.so(+0x3512)[0x7fa08c641512] octave-3.6.0> /usr/lib64/libsandbox.so(+0x3583)[0x7fa08c641583] octave-3.6.0> /usr/lib64/libsandbox.so(+0x4b1d)[0x7fa08c642b1d] octave-3.6.0> /usr/lib64/libsandbox.so(unlinkat+0x89)[0x7fa08c6466f9] octave-3.6.0> rm[0x402224] octave-3.6.0> rm[0x402cd3] octave-3.6.0> rm[0x401d3d] octave-3.6.0> /lib64/libc.so.6(__libc_start_main+0xed)[0x7fa08c2d718d] octave-3.6.0> rm[0x401e45] octave-3.6.0> /proc/264721/cmdline: rm -f /test-tc-openmp* octave-3.6.0> octave-3.6.0> /var/repositories/gentoo-x86/eclass/toolchain-funcs.eclass: line 296: 264721 Aborted rm -f "${base}"* octave-3.6.0> octave-3.6.0> !!! ERROR in sci-mathematics/octave-3.6.0::gentoo: octave-3.6.0> !!! In pkg_pretend at line 59 octave-3.6.0> !!! You have openmp enabled but your current gcc does not support it octave-3.6.0> octave-3.6.0> !!! Call stack: octave-3.6.0> !!! * pkg_pretend (/var/repositories/gentoo-x86/sci-mathematics/octave/octave-3.6.0.ebuild:59) octave-3.6.0> !!! * ebuild_f_pretend (/usr/libexec/paludis/4/pkg_pretend.bash:38) octave-3.6.0> !!! * ebuild_main (/usr/libexec/paludis/ebuild.bash:631) octave-3.6.0> !!! * main (/usr/libexec/paludis/ebuild.bash:672) octave-3.6.0> octave-3.6.0> diefunc: making ebuild PID 264642 exit with error octave-3.6.0> die trap: exiting with error.
fixed by switching to pkg_setup. thanks.