Hi Bruno,

Thank you for quick the response.

There is no sigprocmask.lo in this list. This is normal; gnulib's sigprocmask.c
is not compiled on glibc systems. You can see from the gnulib documentation
<http://www.gnu.org/software/gnulib/manual/html_node/sigprocmask.html>
that this source file is only compiled on mingw platforms.

Indeed. Placing an "#error" line in sigprocmask.cc did not disrupt the build.


Also, the generated signal.h is built with HAVE_SIGSET_T being replaced with 1,
therefore it does not redefine the 'sigset_t' type.

In<https://savannah.gnu.org/bugs/?30685>  you write:
A change (similar to Leonardo's) that seems to work while theoretically 
maintaining sigaction
functionality is to explicitly call the sigemptyset macro (bits/sigset.h):

octave-3.4.0/src/sighandlers.cc line 225
  //gnulib::sigemptyset (&act.sa_mask);
  //gnulib::sigemptyset (&oact.sa_mask);
  //gnulib::sigaction (sig,&act,&oact);
  __sigemptyset (&act.sa_mask);
  __sigemptyset (&oact.sa_mask);
  sigaction (sig,&act,&oact);

(only removing the namespace didn't work for me either)
This indicates that the crucial difference is between the __sigemptyset
macro and the sigemptyset functions, both from glibc.

This report might be misleading, and there might not be a difference. When I removed the gnulib namespace from the file entirely, and recompiled, octave started and ran. The problem with this report was that there were still some instances of "gnulib::" on other function calls. I suspect this was also the case when others removed "gnulib" on sigemptyset and it still crashed (presumably on the subsequent gnulib::sigaction).


Or if 'sigemptyset' would work fine, then the crucial difference would
be in the function pointer indirection by which gnulib implements the
'gnulib::sigemptyset' function in term of the 'sigemptyset' function
pointer.

In order to debug this, I would recommend to look at

   - the source code of the __sigemptyset macro and of the sigemptyset
     function,

From /usr/include/bits/sigset.h

# define _SIGSET_NWORDS (1024 / (8 * sizeof (unsigned long int)))
typedef struct
  {
    unsigned long int __val[_SIGSET_NWORDS];
  } __sigset_t;


#  define __sigemptyset(set) \
  (__extension__ ({ int __cnt = _SIGSET_NWORDS;                   \
            sigset_t *__set = (set);                      \
            while (--__cnt >= 0) __set->__val[__cnt] = 0;         \
            0; }))

I am unable to find source code for the sigemptyset function of glibc.


   - the assembly level instructions where it crashes:

      #0  0xb785896c in sigemptyset () from 
/home/muttoni/a/octave-3.3.53/src/.libs/liboctinterp-3.3.53.so

     because it's not clear why liboctinterp-3.3.53.so would contain
     a sigemptyset function at all (since gnulib's one is not being
     compiled).

This is naive speculation, but perhaps liboctinterp is involved because "gnulib::sigemptyset" is being called, instead of simply "sigemptyset"? As mentioned above, I removed all references of "gnulib::" from the problem file and recompiled, and it seemed to run fine. With the namespace declared, it reliably crashes. Perhaps a link issue? This speculation is discrepant with reports in the original octave bug, but in those cases people (seem to have) only removed "gnulib::" from sigemptyset, leaving the other instances intact. If I do that, it does crash.


Assembly instructions at breakpoint shortly before crash. Crash occurs stepping past instruction at 0x2b630861baff.

Breakpoint 1, octave_set_signal_handler (sig=2,
    handler=0x2b630861c080 <sigint_handler>, restart_syscalls=true)
    at sighandlers.cc:206
206      act.sa_flags = 0;
2: x/10i $pc
0x2b630861bae3 <_Z25octave_set_signal_handleriPFviEb+35>:
---Type <return> to continue, or q <return> to quit---
    movl   $0x0,0x128(%rsp)
0x2b630861baee <_Z25octave_set_signal_handleriPFviEb+46>:
    je     0x2b630861bb50 <_Z25octave_set_signal_handleriPFviEb+144>
0x2b630861baf0 <_Z25octave_set_signal_handleriPFviEb+48>:    test   %dl,%dl
0x2b630861baf2 <_Z25octave_set_signal_handleriPFviEb+50>:
    je     0x2b630861baff <_Z25octave_set_signal_handleriPFviEb+63>
0x2b630861baf4 <_Z25octave_set_signal_handleriPFviEb+52>:
    movl   $0x10000000,0x128(%rsp)
0x2b630861baff <_Z25octave_set_signal_handleriPFviEb+63>:
    lea    0xa0(%rsp),%r12
0x2b630861bb07 <_Z25octave_set_signal_handleriPFviEb+71>:
    lea    0x8(%r12),%rdi
0x2b630861bb0c <_Z25octave_set_signal_handleriPFviEb+76>:
    callq  0x2b630905ede8 <sigemptyset>
0x2b630861bb11 <_Z25octave_set_signal_handleriPFviEb+81>:
    lea    0x8(%rsp),%rdi
0x2b630861bb16 <_Z25octave_set_signal_handleriPFviEb+86>:
    callq  0x2b630905ede8 <sigemptyset>
1: x/3i $pc
0x2b630861bae3 <_Z25octave_set_signal_handleriPFviEb+35>:
    movl   $0x0,0x128(%rsp)
0x2b630861baee <_Z25octave_set_signal_handleriPFviEb+46>:
    je     0x2b630861bb50 <_Z25octave_set_signal_handleriPFviEb+144>
---Type <return> to continue, or q <return> to quit---
0x2b630861baf0 <_Z25octave_set_signal_handleriPFviEb+48>:    test   %dl,%dl
Current language:  auto; currently c++
(gdb)
-------------------------------------


Assembly instructions at crash
(gdb) s

Program received signal SIGSEGV, Segmentation fault.
0x00002b630905ede8 in sigemptyset ()
from /global/home/keith/software/octave-3.4.0/src/.libs/liboctinterp-3.4.0.so
2: x/10i $pc
0x2b630905ede8 <sigemptyset>:    callq  0x2b636c0ef3da
0x2b630905eded <sigemptyset+5>:    sub    (%rax),%eax
0x2b630905edef <sigemptyset+7>:    add    %dh,%al
0x2b630905edf1 <sigaction+1>:    in     (%dx),%eax
0x2b630905edf2 <sigaction+2>:    add    $0x2b6309,%eax
0x2b630905edf7 <sigaction+7>:    add    %bh,%al
0x2b630905edf9 <sigaddset+1>:    in     (%dx),%eax
0x2b630905edfa <sigaddset+2>:    add    $0x2b6309,%eax
0x2b630905edff <sigaddset+7>:    add    %al,(%rax)
0x2b630905ee01 <sigprocmask+1>:    out    %al,(%dx)
1: x/3i $pc
0x2b630905ede8 <sigemptyset>:    callq  0x2b636c0ef3da
0x2b630905eded <sigemptyset+5>:    sub    (%rax),%eax
0x2b630905edef <sigemptyset+7>:    add    %dh,%al
(gdb)


   - the preprocessed source file (g++ -E -dD) of the compilation unit
     that contains the gnulib::sigemptyset invocation.

It's beyond my mental capacity right now to parse the make command and set up the proper environment to do this manually. I've attached make output that includes "sighandlers", in case that might be of help. If it's necessary, I can try to get preprocessor output.

Keith

Bruno

          -DMAKE_BUILTINS sighandlers.cc | ./mkdefs . sighandlers.cc > 
sighandlers.df-t
mv sighandlers.df-t sighandlers.df
./mkbuiltins bitfcns.df data.df debug.df defaults.df dirfns.df error.df 
file-io.df graphics.df help.df input.df lex.df load-path.df load-save.df 
ls-oct-ascii.df mappers.df oct-hist.df oct-parse.df octave.df pager.df 
pr-output.df sighandlers.df sparse.df strfns.df symtab.df syscalls.df sysdep.df 
toplev.df utils.df variables.df ov-base.df ov-bool-mat.df ov-cell.df 
ov-class.df ov-fcn-handle.df ov-fcn-inline.df ov-flt-re-mat.df ov-null-mat.df 
ov-range.df ov-re-mat.df ov-struct.df ov-typeinfo.df ov-usr-fcn.df ov.df 
ov-int16.df ov-int32.df ov-int64.df ov-int8.df ov-uint16.df ov-uint32.df 
ov-uint64.df ov-uint8.df pt-arg-list.df pt-binop.df pt-eval.df pt-mat.df  > 
builtins.cc-t
/bin/sh ../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I. -I..  
-I../libgnu -I../libgnu -I../libcruft/misc -I../liboctave -I../liboctave -I. 
-I.   -g -O2  -DHAVE_CONFIG_H  -Wall -W -Wshadow -Wold-style-cast -Wformat 
-Wpointer-arith -Wwrite-strings -Wcast-align -Wcast-qual -g -O2 -pthread -g -O2 
-MT liboctinterp_la-sighandlers.lo -MD -MP -MF 
.deps/liboctinterp_la-sighandlers.Tpo -c -o liboctinterp_la-sighandlers.lo 
`test -f 'sighandlers.cc' || echo './'`sighandlers.cc
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I.. -I../libgnu -I../libgnu 
-I../libcruft/misc -I../liboctave -I../liboctave -I. -I. -g -O2 -DHAVE_CONFIG_H 
-Wall -W -Wshadow -Wold-style-cast -Wformat -Wpointer-arith -Wwrite-strings 
-Wcast-align -Wcast-qual -g -O2 -pthread -g -O2 -MT 
liboctinterp_la-sighandlers.lo -MD -MP -MF 
.deps/liboctinterp_la-sighandlers.Tpo -c sighandlers.cc  -fPIC -DPIC -o 
.libs/liboctinterp_la-sighandlers.o
mv -f .deps/liboctinterp_la-sighandlers.Tpo 
.deps/liboctinterp_la-sighandlers.Plo
/bin/sh ../libtool --tag=CXX   --mode=link g++ -g -O2  -DHAVE_CONFIG_H  -Wall 
-W -Wshadow -Wold-style-cast -Wformat -Wpointer-arith -Wwrite-strings 
-Wcast-align -Wcast-qual -g -O2 -pthread -g -O2 -release 3.4.0  -bindir 
/global/home/keith/local/bin -L/usr/lib64/atlas_GenuineIntel_x86_64/ -o 
liboctinterp.la -rpath /global/home/keith/local/lib/octave-3.4.0 
liboctinterp_la-Cell.lo liboctinterp_la-bitfcns.lo 
liboctinterp_la-c-file-ptr-stream.lo liboctinterp_la-comment-list.lo 
liboctinterp_la-cutils.lo liboctinterp_la-data.lo liboctinterp_la-debug.lo 
liboctinterp_la-defaults.lo liboctinterp_la-defun.lo liboctinterp_la-dirfns.lo 
liboctinterp_la-display.lo liboctinterp_la-dynamic-ld.lo 
liboctinterp_la-error.lo liboctinterp_la-file-io.lo 
liboctinterp_la-gl-render.lo liboctinterp_la-gl2ps-renderer.lo 
liboctinterp_la-graphics.lo liboctinterp_la-gripes.lo liboctinterp_la-help.lo 
liboctinterp_la-input.lo liboctinterp_la-lex.lo liboctinterp_la-load-path.lo 
liboctinterp_la-load-save.lo liboctinterp_la-ls-ascii-helper.lo 
liboctinterp_la-ls-hdf5.lo liboctinterp_la-ls-mat-ascii.lo 
liboctinterp_la-ls-mat4.lo liboctinterp_la-ls-mat5.lo 
liboctinterp_la-ls-oct-ascii.lo liboctinterp_la-ls-oct-binary.lo 
liboctinterp_la-ls-utils.lo liboctinterp_la-mappers.lo 
liboctinterp_la-matherr.lo liboctinterp_la-mex.lo liboctinterp_la-oct-fstrm.lo 
liboctinterp_la-oct-hist.lo liboctinterp_la-oct-iostrm.lo 
liboctinterp_la-oct-lvalue.lo liboctinterp_la-oct-map.lo 
liboctinterp_la-oct-obj.lo liboctinterp_la-oct-parse.lo 
liboctinterp_la-oct-prcstrm.lo liboctinterp_la-oct-procbuf.lo 
liboctinterp_la-oct-stream.lo liboctinterp_la-oct-strstrm.lo 
liboctinterp_la-octave.lo liboctinterp_la-pager.lo liboctinterp_la-pr-output.lo 
liboctinterp_la-procstream.lo liboctinterp_la-sighandlers.lo 
liboctinterp_la-siglist.lo liboctinterp_la-sparse.lo 
liboctinterp_la-sparse-xdiv.lo liboctinterp_la-sparse-xpow.lo 
liboctinterp_la-strfns.lo liboctinterp_la-symtab.lo liboctinterp_la-syscalls.lo 
liboctinterp_la-sysdep.lo liboctinterp_la-token.lo liboctinterp_la-toplev.lo 
liboctinterp_la-txt-eng-ft.lo liboctinterp_la-unwind-prot.lo 
liboctinterp_la-utils.lo liboctinterp_la-variables.lo liboctinterp_la-xdiv.lo 
liboctinterp_la-xgl2ps.lo liboctinterp_la-xnorm.lo liboctinterp_la-xpow.lo 
liboctinterp_la-zfstream.lo liboctinterp_la-ov-base.lo 
liboctinterp_la-ov-bool-mat.lo liboctinterp_la-ov-bool.lo 
liboctinterp_la-ov-builtin.lo liboctinterp_la-ov-cell.lo 
liboctinterp_la-ov-ch-mat.lo liboctinterp_la-ov-class.lo 
liboctinterp_la-ov-colon.lo liboctinterp_la-ov-complex.lo 
liboctinterp_la-ov-cs-list.lo liboctinterp_la-ov-cx-diag.lo 
liboctinterp_la-ov-cx-mat.lo liboctinterp_la-ov-dld-fcn.lo 
liboctinterp_la-ov-fcn-handle.lo liboctinterp_la-ov-fcn-inline.lo 
liboctinterp_la-ov-fcn.lo liboctinterp_la-ov-float.lo 
liboctinterp_la-ov-flt-complex.lo liboctinterp_la-ov-flt-cx-diag.lo 
liboctinterp_la-ov-flt-cx-mat.lo liboctinterp_la-ov-flt-re-diag.lo 
liboctinterp_la-ov-flt-re-mat.lo liboctinterp_la-ov-lazy-idx.lo 
liboctinterp_la-ov-mex-fcn.lo liboctinterp_la-ov-null-mat.lo 
liboctinterp_la-ov-perm.lo liboctinterp_la-ov-range.lo 
liboctinterp_la-ov-re-diag.lo liboctinterp_la-ov-re-mat.lo 
liboctinterp_la-ov-scalar.lo liboctinterp_la-ov-str-mat.lo 
liboctinterp_la-ov-struct.lo liboctinterp_la-ov-typeinfo.lo 
liboctinterp_la-ov-usr-fcn.lo liboctinterp_la-ov.lo liboctinterp_la-ov-int16.lo 
liboctinterp_la-ov-int32.lo liboctinterp_la-ov-int64.lo 
liboctinterp_la-ov-int8.lo liboctinterp_la-ov-uint16.lo 
liboctinterp_la-ov-uint32.lo liboctinterp_la-ov-uint64.lo 
liboctinterp_la-ov-uint8.lo liboctinterp_la-ov-base-sparse.lo 
liboctinterp_la-ov-bool-sparse.lo liboctinterp_la-ov-cx-sparse.lo 
liboctinterp_la-ov-re-sparse.lo liboctinterp_la-pt-arg-list.lo 
liboctinterp_la-pt-assign.lo liboctinterp_la-pt-binop.lo 
liboctinterp_la-pt-bp.lo liboctinterp_la-pt-cbinop.lo 
liboctinterp_la-pt-cell.lo liboctinterp_la-pt-check.lo 
liboctinterp_la-pt-cmd.lo liboctinterp_la-pt-colon.lo 
liboctinterp_la-pt-const.lo liboctinterp_la-pt-decl.lo 
liboctinterp_la-pt-eval.lo liboctinterp_la-pt-except.lo 
liboctinterp_la-pt-exp.lo liboctinterp_la-pt-fcn-handle.lo 
liboctinterp_la-pt-id.lo liboctinterp_la-pt-idx.lo liboctinterp_la-pt-jump.lo 
liboctinterp_la-pt-loop.lo liboctinterp_la-pt-mat.lo liboctinterp_la-pt-misc.lo 
liboctinterp_la-pt-pr-code.lo liboctinterp_la-pt-select.lo 
liboctinterp_la-pt-stmt.lo liboctinterp_la-pt-unop.lo liboctinterp_la-pt.lo  
OPERATORS/liboctinterp_la-op-b-b.lo OPERATORS/liboctinterp_la-op-b-bm.lo 
OPERATORS/liboctinterp_la-op-b-sbm.lo OPERATORS/liboctinterp_la-op-bm-b.lo 
OPERATORS/liboctinterp_la-op-bm-bm.lo OPERATORS/liboctinterp_la-op-bm-sbm.lo 
OPERATORS/liboctinterp_la-op-cdm-cdm.lo OPERATORS/liboctinterp_la-op-cdm-cm.lo 
OPERATORS/liboctinterp_la-op-cdm-cs.lo OPERATORS/liboctinterp_la-op-cdm-dm.lo 
OPERATORS/liboctinterp_la-op-cdm-m.lo OPERATORS/liboctinterp_la-op-cdm-s.lo 
OPERATORS/liboctinterp_la-op-cell.lo OPERATORS/liboctinterp_la-op-chm.lo 
OPERATORS/liboctinterp_la-op-class.lo OPERATORS/liboctinterp_la-op-cm-cdm.lo 
OPERATORS/liboctinterp_la-op-cm-cm.lo OPERATORS/liboctinterp_la-op-cm-cs.lo 
OPERATORS/liboctinterp_la-op-cm-dm.lo OPERATORS/liboctinterp_la-op-cm-m.lo 
OPERATORS/liboctinterp_la-op-cm-pm.lo OPERATORS/liboctinterp_la-op-cm-s.lo 
OPERATORS/liboctinterp_la-op-cm-scm.lo OPERATORS/liboctinterp_la-op-cm-sm.lo 
OPERATORS/liboctinterp_la-op-cs-cm.lo OPERATORS/liboctinterp_la-op-cs-cs.lo 
OPERATORS/liboctinterp_la-op-cs-m.lo OPERATORS/liboctinterp_la-op-cs-s.lo 
OPERATORS/liboctinterp_la-op-cs-scm.lo OPERATORS/liboctinterp_la-op-cs-sm.lo 
OPERATORS/liboctinterp_la-op-dm-cdm.lo OPERATORS/liboctinterp_la-op-dm-cm.lo 
OPERATORS/liboctinterp_la-op-dm-cs.lo OPERATORS/liboctinterp_la-op-dm-dm.lo 
OPERATORS/liboctinterp_la-op-dm-m.lo OPERATORS/liboctinterp_la-op-dm-s.lo 
OPERATORS/liboctinterp_la-op-dm-scm.lo OPERATORS/liboctinterp_la-op-dm-sm.lo 
OPERATORS/liboctinterp_la-op-double-conv.lo 
OPERATORS/liboctinterp_la-op-fcdm-fcdm.lo 
OPERATORS/liboctinterp_la-op-fcdm-fcm.lo 
OPERATORS/liboctinterp_la-op-fcdm-fcs.lo 
OPERATORS/liboctinterp_la-op-fcdm-fdm.lo 
OPERATORS/liboctinterp_la-op-fcdm-fm.lo OPERATORS/liboctinterp_la-op-fcdm-fs.lo 
OPERATORS/liboctinterp_la-op-fcm-fcdm.lo 
OPERATORS/liboctinterp_la-op-fcm-fcm.lo OPERATORS/liboctinterp_la-op-fcm-fcs.lo 
OPERATORS/liboctinterp_la-op-fcm-fdm.lo OPERATORS/liboctinterp_la-op-fcm-fm.lo 
OPERATORS/liboctinterp_la-op-fcm-fs.lo OPERATORS/liboctinterp_la-op-fcm-pm.lo 
OPERATORS/liboctinterp_la-op-fcn.lo OPERATORS/liboctinterp_la-op-fcs-fcm.lo 
OPERATORS/liboctinterp_la-op-fcs-fcs.lo OPERATORS/liboctinterp_la-op-fcs-fm.lo 
OPERATORS/liboctinterp_la-op-fcs-fs.lo OPERATORS/liboctinterp_la-op-fdm-fcdm.lo 
OPERATORS/liboctinterp_la-op-fdm-fcm.lo OPERATORS/liboctinterp_la-op-fdm-fcs.lo 
OPERATORS/liboctinterp_la-op-fdm-fdm.lo OPERATORS/liboctinterp_la-op-fdm-fm.lo 
OPERATORS/liboctinterp_la-op-fdm-fs.lo 
OPERATORS/liboctinterp_la-op-float-conv.lo 
OPERATORS/liboctinterp_la-op-fm-fcdm.lo OPERATORS/liboctinterp_la-op-fm-fcm.lo 
OPERATORS/liboctinterp_la-op-fm-fcs.lo OPERATORS/liboctinterp_la-op-fm-fdm.lo 
OPERATORS/liboctinterp_la-op-fm-fm.lo OPERATORS/liboctinterp_la-op-fm-fs.lo 
OPERATORS/liboctinterp_la-op-fm-pm.lo OPERATORS/liboctinterp_la-op-fs-fcm.lo 
OPERATORS/liboctinterp_la-op-fs-fcs.lo OPERATORS/liboctinterp_la-op-fs-fm.lo 
OPERATORS/liboctinterp_la-op-fs-fs.lo OPERATORS/liboctinterp_la-op-i16-i16.lo 
OPERATORS/liboctinterp_la-op-i32-i32.lo OPERATORS/liboctinterp_la-op-i64-i64.lo 
OPERATORS/liboctinterp_la-op-i8-i8.lo 
OPERATORS/liboctinterp_la-op-int-concat.lo 
OPERATORS/liboctinterp_la-op-int-conv.lo OPERATORS/liboctinterp_la-op-m-cdm.lo 
OPERATORS/liboctinterp_la-op-m-cm.lo OPERATORS/liboctinterp_la-op-m-cs.lo 
OPERATORS/liboctinterp_la-op-m-dm.lo OPERATORS/liboctinterp_la-op-m-m.lo 
OPERATORS/liboctinterp_la-op-m-pm.lo OPERATORS/liboctinterp_la-op-m-s.lo 
OPERATORS/liboctinterp_la-op-m-scm.lo OPERATORS/liboctinterp_la-op-m-sm.lo 
OPERATORS/liboctinterp_la-op-pm-cm.lo OPERATORS/liboctinterp_la-op-pm-fcm.lo 
OPERATORS/liboctinterp_la-op-pm-fm.lo OPERATORS/liboctinterp_la-op-pm-m.lo 
OPERATORS/liboctinterp_la-op-pm-pm.lo OPERATORS/liboctinterp_la-op-pm-scm.lo 
OPERATORS/liboctinterp_la-op-pm-sm.lo OPERATORS/liboctinterp_la-op-range.lo 
OPERATORS/liboctinterp_la-op-s-cm.lo OPERATORS/liboctinterp_la-op-s-cs.lo 
OPERATORS/liboctinterp_la-op-s-m.lo OPERATORS/liboctinterp_la-op-s-s.lo 
OPERATORS/liboctinterp_la-op-s-scm.lo OPERATORS/liboctinterp_la-op-s-sm.lo 
OPERATORS/liboctinterp_la-op-sbm-b.lo OPERATORS/liboctinterp_la-op-sbm-bm.lo 
OPERATORS/liboctinterp_la-op-sbm-sbm.lo OPERATORS/liboctinterp_la-op-scm-cm.lo 
OPERATORS/liboctinterp_la-op-scm-cs.lo OPERATORS/liboctinterp_la-op-scm-m.lo 
OPERATORS/liboctinterp_la-op-scm-s.lo OPERATORS/liboctinterp_la-op-scm-scm.lo 
OPERATORS/liboctinterp_la-op-scm-sm.lo OPERATORS/liboctinterp_la-op-sm-cm.lo 
OPERATORS/liboctinterp_la-op-sm-cs.lo OPERATORS/liboctinterp_la-op-sm-m.lo 
OPERATORS/liboctinterp_la-op-sm-s.lo OPERATORS/liboctinterp_la-op-sm-scm.lo 
OPERATORS/liboctinterp_la-op-sm-sm.lo OPERATORS/liboctinterp_la-op-str-m.lo 
OPERATORS/liboctinterp_la-op-str-s.lo OPERATORS/liboctinterp_la-op-str-str.lo 
OPERATORS/liboctinterp_la-op-struct.lo 
OPERATORS/liboctinterp_la-op-ui16-ui16.lo 
OPERATORS/liboctinterp_la-op-ui32-ui32.lo 
OPERATORS/liboctinterp_la-op-ui64-ui64.lo 
OPERATORS/liboctinterp_la-op-ui8-ui8.lo 
TEMPLATE-INST/liboctinterp_la-Array-os.lo 
TEMPLATE-INST/liboctinterp_la-Array-tc.lo liboctinterp_la-builtins.lo 
liboctinterp_la-oct-errno.lo liboctinterp_la-ops.lo  -Wl,-rpath 
-Wl,/global/home/keith/local/lib/octave-3.4.0 ../liboctave/liboctave.la 
../libcruft/libcruft.la ../libcruft/libranlib.la ../libgnu/libgnu.la   -lfftw3 
-lfftw3f      -lz  -lX11  -lreadline -lncurses  -llapack -lcblas -lf77blas 
-latlas -lm   -L/usr/lib64/atlas_GenuineIntel_x86_64/ 
-L/usr/lib/gcc/x86_64-redhat-linux/4.1.2 
-L/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64 -L/lib/../lib64 
-L/usr/lib/../lib64 -lgfortranbegin -lgfortran -lm -lm  
libtool: link: g++ -shared -nostdlib 
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/crti.o 
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/crtbeginS.o  
.libs/liboctinterp_la-Cell.o .libs/liboctinterp_la-bitfcns.o 
.libs/liboctinterp_la-c-file-ptr-stream.o .libs/liboctinterp_la-comment-list.o 
.libs/liboctinterp_la-cutils.o .libs/liboctinterp_la-data.o 
.libs/liboctinterp_la-debug.o .libs/liboctinterp_la-defaults.o 
.libs/liboctinterp_la-defun.o .libs/liboctinterp_la-dirfns.o 
.libs/liboctinterp_la-display.o .libs/liboctinterp_la-dynamic-ld.o 
.libs/liboctinterp_la-error.o .libs/liboctinterp_la-file-io.o 
.libs/liboctinterp_la-gl-render.o .libs/liboctinterp_la-gl2ps-renderer.o 
.libs/liboctinterp_la-graphics.o .libs/liboctinterp_la-gripes.o 
.libs/liboctinterp_la-help.o .libs/liboctinterp_la-input.o 
.libs/liboctinterp_la-lex.o .libs/liboctinterp_la-load-path.o 
.libs/liboctinterp_la-load-save.o .libs/liboctinterp_la-ls-ascii-helper.o 
.libs/liboctinterp_la-ls-hdf5.o .libs/liboctinterp_la-ls-mat-ascii.o 
.libs/liboctinterp_la-ls-mat4.o .libs/liboctinterp_la-ls-mat5.o 
.libs/liboctinterp_la-ls-oct-ascii.o .libs/liboctinterp_la-ls-oct-binary.o 
.libs/liboctinterp_la-ls-utils.o .libs/liboctinterp_la-mappers.o 
.libs/liboctinterp_la-matherr.o .libs/liboctinterp_la-mex.o 
.libs/liboctinterp_la-oct-fstrm.o .libs/liboctinterp_la-oct-hist.o 
.libs/liboctinterp_la-oct-iostrm.o .libs/liboctinterp_la-oct-lvalue.o 
.libs/liboctinterp_la-oct-map.o .libs/liboctinterp_la-oct-obj.o 
.libs/liboctinterp_la-oct-parse.o .libs/liboctinterp_la-oct-prcstrm.o 
.libs/liboctinterp_la-oct-procbuf.o .libs/liboctinterp_la-oct-stream.o 
.libs/liboctinterp_la-oct-strstrm.o .libs/liboctinterp_la-octave.o 
.libs/liboctinterp_la-pager.o .libs/liboctinterp_la-pr-output.o 
.libs/liboctinterp_la-procstream.o .libs/liboctinterp_la-sighandlers.o 
.libs/liboctinterp_la-siglist.o .libs/liboctinterp_la-sparse.o 
.libs/liboctinterp_la-sparse-xdiv.o .libs/liboctinterp_la-sparse-xpow.o 
.libs/liboctinterp_la-strfns.o .libs/liboctinterp_la-symtab.o 
.libs/liboctinterp_la-syscalls.o .libs/liboctinterp_la-sysdep.o 
.libs/liboctinterp_la-token.o .libs/liboctinterp_la-toplev.o 
.libs/liboctinterp_la-txt-eng-ft.o .libs/liboctinterp_la-unwind-prot.o 
.libs/liboctinterp_la-utils.o .libs/liboctinterp_la-variables.o 
.libs/liboctinterp_la-xdiv.o .libs/liboctinterp_la-xgl2ps.o 
.libs/liboctinterp_la-xnorm.o .libs/liboctinterp_la-xpow.o 
.libs/liboctinterp_la-zfstream.o .libs/liboctinterp_la-ov-base.o 
.libs/liboctinterp_la-ov-bool-mat.o .libs/liboctinterp_la-ov-bool.o 
.libs/liboctinterp_la-ov-builtin.o .libs/liboctinterp_la-ov-cell.o 
.libs/liboctinterp_la-ov-ch-mat.o .libs/liboctinterp_la-ov-class.o 
.libs/liboctinterp_la-ov-colon.o .libs/liboctinterp_la-ov-complex.o 
.libs/liboctinterp_la-ov-cs-list.o .libs/liboctinterp_la-ov-cx-diag.o 
.libs/liboctinterp_la-ov-cx-mat.o .libs/liboctinterp_la-ov-dld-fcn.o 
.libs/liboctinterp_la-ov-fcn-handle.o .libs/liboctinterp_la-ov-fcn-inline.o 
.libs/liboctinterp_la-ov-fcn.o .libs/liboctinterp_la-ov-float.o 
.libs/liboctinterp_la-ov-flt-complex.o .libs/liboctinterp_la-ov-flt-cx-diag.o 
.libs/liboctinterp_la-ov-flt-cx-mat.o .libs/liboctinterp_la-ov-flt-re-diag.o 
.libs/liboctinterp_la-ov-flt-re-mat.o .libs/liboctinterp_la-ov-lazy-idx.o 
.libs/liboctinterp_la-ov-mex-fcn.o .libs/liboctinterp_la-ov-null-mat.o 
.libs/liboctinterp_la-ov-perm.o .libs/liboctinterp_la-ov-range.o 
.libs/liboctinterp_la-ov-re-diag.o .libs/liboctinterp_la-ov-re-mat.o 
.libs/liboctinterp_la-ov-scalar.o .libs/liboctinterp_la-ov-str-mat.o 
.libs/liboctinterp_la-ov-struct.o .libs/liboctinterp_la-ov-typeinfo.o 
.libs/liboctinterp_la-ov-usr-fcn.o .libs/liboctinterp_la-ov.o 
.libs/liboctinterp_la-ov-int16.o .libs/liboctinterp_la-ov-int32.o 
.libs/liboctinterp_la-ov-int64.o .libs/liboctinterp_la-ov-int8.o 
.libs/liboctinterp_la-ov-uint16.o .libs/liboctinterp_la-ov-uint32.o 
.libs/liboctinterp_la-ov-uint64.o .libs/liboctinterp_la-ov-uint8.o 
.libs/liboctinterp_la-ov-base-sparse.o .libs/liboctinterp_la-ov-bool-sparse.o 
.libs/liboctinterp_la-ov-cx-sparse.o .libs/liboctinterp_la-ov-re-sparse.o 
.libs/liboctinterp_la-pt-arg-list.o .libs/liboctinterp_la-pt-assign.o 
.libs/liboctinterp_la-pt-binop.o .libs/liboctinterp_la-pt-bp.o 
.libs/liboctinterp_la-pt-cbinop.o .libs/liboctinterp_la-pt-cell.o 
.libs/liboctinterp_la-pt-check.o .libs/liboctinterp_la-pt-cmd.o 
.libs/liboctinterp_la-pt-colon.o .libs/liboctinterp_la-pt-const.o 
.libs/liboctinterp_la-pt-decl.o .libs/liboctinterp_la-pt-eval.o 
.libs/liboctinterp_la-pt-except.o .libs/liboctinterp_la-pt-exp.o 
.libs/liboctinterp_la-pt-fcn-handle.o .libs/liboctinterp_la-pt-id.o 
.libs/liboctinterp_la-pt-idx.o .libs/liboctinterp_la-pt-jump.o 
.libs/liboctinterp_la-pt-loop.o .libs/liboctinterp_la-pt-mat.o 
.libs/liboctinterp_la-pt-misc.o .libs/liboctinterp_la-pt-pr-code.o 
.libs/liboctinterp_la-pt-select.o .libs/liboctinterp_la-pt-stmt.o 
.libs/liboctinterp_la-pt-unop.o .libs/liboctinterp_la-pt.o 
OPERATORS/.libs/liboctinterp_la-op-b-b.o 
OPERATORS/.libs/liboctinterp_la-op-b-bm.o 
OPERATORS/.libs/liboctinterp_la-op-b-sbm.o 
OPERATORS/.libs/liboctinterp_la-op-bm-b.o 
OPERATORS/.libs/liboctinterp_la-op-bm-bm.o 
OPERATORS/.libs/liboctinterp_la-op-bm-sbm.o 
OPERATORS/.libs/liboctinterp_la-op-cdm-cdm.o 
OPERATORS/.libs/liboctinterp_la-op-cdm-cm.o 
OPERATORS/.libs/liboctinterp_la-op-cdm-cs.o 
OPERATORS/.libs/liboctinterp_la-op-cdm-dm.o 
OPERATORS/.libs/liboctinterp_la-op-cdm-m.o 
OPERATORS/.libs/liboctinterp_la-op-cdm-s.o 
OPERATORS/.libs/liboctinterp_la-op-cell.o 
OPERATORS/.libs/liboctinterp_la-op-chm.o 
OPERATORS/.libs/liboctinterp_la-op-class.o 
OPERATORS/.libs/liboctinterp_la-op-cm-cdm.o 
OPERATORS/.libs/liboctinterp_la-op-cm-cm.o 
OPERATORS/.libs/liboctinterp_la-op-cm-cs.o 
OPERATORS/.libs/liboctinterp_la-op-cm-dm.o 
OPERATORS/.libs/liboctinterp_la-op-cm-m.o 
OPERATORS/.libs/liboctinterp_la-op-cm-pm.o 
OPERATORS/.libs/liboctinterp_la-op-cm-s.o 
OPERATORS/.libs/liboctinterp_la-op-cm-scm.o 
OPERATORS/.libs/liboctinterp_la-op-cm-sm.o 
OPERATORS/.libs/liboctinterp_la-op-cs-cm.o 
OPERATORS/.libs/liboctinterp_la-op-cs-cs.o 
OPERATORS/.libs/liboctinterp_la-op-cs-m.o 
OPERATORS/.libs/liboctinterp_la-op-cs-s.o 
OPERATORS/.libs/liboctinterp_la-op-cs-scm.o 
OPERATORS/.libs/liboctinterp_la-op-cs-sm.o 
OPERATORS/.libs/liboctinterp_la-op-dm-cdm.o 
OPERATORS/.libs/liboctinterp_la-op-dm-cm.o 
OPERATORS/.libs/liboctinterp_la-op-dm-cs.o 
OPERATORS/.libs/liboctinterp_la-op-dm-dm.o 
OPERATORS/.libs/liboctinterp_la-op-dm-m.o 
OPERATORS/.libs/liboctinterp_la-op-dm-s.o 
OPERATORS/.libs/liboctinterp_la-op-dm-scm.o 
OPERATORS/.libs/liboctinterp_la-op-dm-sm.o 
OPERATORS/.libs/liboctinterp_la-op-double-conv.o 
OPERATORS/.libs/liboctinterp_la-op-fcdm-fcdm.o 
OPERATORS/.libs/liboctinterp_la-op-fcdm-fcm.o 
OPERATORS/.libs/liboctinterp_la-op-fcdm-fcs.o 
OPERATORS/.libs/liboctinterp_la-op-fcdm-fdm.o 
OPERATORS/.libs/liboctinterp_la-op-fcdm-fm.o 
OPERATORS/.libs/liboctinterp_la-op-fcdm-fs.o 
OPERATORS/.libs/liboctinterp_la-op-fcm-fcdm.o 
OPERATORS/.libs/liboctinterp_la-op-fcm-fcm.o 
OPERATORS/.libs/liboctinterp_la-op-fcm-fcs.o 
OPERATORS/.libs/liboctinterp_la-op-fcm-fdm.o 
OPERATORS/.libs/liboctinterp_la-op-fcm-fm.o 
OPERATORS/.libs/liboctinterp_la-op-fcm-fs.o 
OPERATORS/.libs/liboctinterp_la-op-fcm-pm.o 
OPERATORS/.libs/liboctinterp_la-op-fcn.o 
OPERATORS/.libs/liboctinterp_la-op-fcs-fcm.o 
OPERATORS/.libs/liboctinterp_la-op-fcs-fcs.o 
OPERATORS/.libs/liboctinterp_la-op-fcs-fm.o 
OPERATORS/.libs/liboctinterp_la-op-fcs-fs.o 
OPERATORS/.libs/liboctinterp_la-op-fdm-fcdm.o 
OPERATORS/.libs/liboctinterp_la-op-fdm-fcm.o 
OPERATORS/.libs/liboctinterp_la-op-fdm-fcs.o 
OPERATORS/.libs/liboctinterp_la-op-fdm-fdm.o 
OPERATORS/.libs/liboctinterp_la-op-fdm-fm.o 
OPERATORS/.libs/liboctinterp_la-op-fdm-fs.o 
OPERATORS/.libs/liboctinterp_la-op-float-conv.o 
OPERATORS/.libs/liboctinterp_la-op-fm-fcdm.o 
OPERATORS/.libs/liboctinterp_la-op-fm-fcm.o 
OPERATORS/.libs/liboctinterp_la-op-fm-fcs.o 
OPERATORS/.libs/liboctinterp_la-op-fm-fdm.o 
OPERATORS/.libs/liboctinterp_la-op-fm-fm.o 
OPERATORS/.libs/liboctinterp_la-op-fm-fs.o 
OPERATORS/.libs/liboctinterp_la-op-fm-pm.o 
OPERATORS/.libs/liboctinterp_la-op-fs-fcm.o 
OPERATORS/.libs/liboctinterp_la-op-fs-fcs.o 
OPERATORS/.libs/liboctinterp_la-op-fs-fm.o 
OPERATORS/.libs/liboctinterp_la-op-fs-fs.o 
OPERATORS/.libs/liboctinterp_la-op-i16-i16.o 
OPERATORS/.libs/liboctinterp_la-op-i32-i32.o 
OPERATORS/.libs/liboctinterp_la-op-i64-i64.o 
OPERATORS/.libs/liboctinterp_la-op-i8-i8.o 
OPERATORS/.libs/liboctinterp_la-op-int-concat.o 
OPERATORS/.libs/liboctinterp_la-op-int-conv.o 
OPERATORS/.libs/liboctinterp_la-op-m-cdm.o 
OPERATORS/.libs/liboctinterp_la-op-m-cm.o 
OPERATORS/.libs/liboctinterp_la-op-m-cs.o 
OPERATORS/.libs/liboctinterp_la-op-m-dm.o 
OPERATORS/.libs/liboctinterp_la-op-m-m.o 
OPERATORS/.libs/liboctinterp_la-op-m-pm.o 
OPERATORS/.libs/liboctinterp_la-op-m-s.o 
OPERATORS/.libs/liboctinterp_la-op-m-scm.o 
OPERATORS/.libs/liboctinterp_la-op-m-sm.o 
OPERATORS/.libs/liboctinterp_la-op-pm-cm.o 
OPERATORS/.libs/liboctinterp_la-op-pm-fcm.o 
OPERATORS/.libs/liboctinterp_la-op-pm-fm.o 
OPERATORS/.libs/liboctinterp_la-op-pm-m.o 
OPERATORS/.libs/liboctinterp_la-op-pm-pm.o 
OPERATORS/.libs/liboctinterp_la-op-pm-scm.o 
OPERATORS/.libs/liboctinterp_la-op-pm-sm.o 
OPERATORS/.libs/liboctinterp_la-op-range.o 
OPERATORS/.libs/liboctinterp_la-op-s-cm.o 
OPERATORS/.libs/liboctinterp_la-op-s-cs.o 
OPERATORS/.libs/liboctinterp_la-op-s-m.o 
OPERATORS/.libs/liboctinterp_la-op-s-s.o 
OPERATORS/.libs/liboctinterp_la-op-s-scm.o 
OPERATORS/.libs/liboctinterp_la-op-s-sm.o 
OPERATORS/.libs/liboctinterp_la-op-sbm-b.o 
OPERATORS/.libs/liboctinterp_la-op-sbm-bm.o 
OPERATORS/.libs/liboctinterp_la-op-sbm-sbm.o 
OPERATORS/.libs/liboctinterp_la-op-scm-cm.o 
OPERATORS/.libs/liboctinterp_la-op-scm-cs.o 
OPERATORS/.libs/liboctinterp_la-op-scm-m.o 
OPERATORS/.libs/liboctinterp_la-op-scm-s.o 
OPERATORS/.libs/liboctinterp_la-op-scm-scm.o 
OPERATORS/.libs/liboctinterp_la-op-scm-sm.o 
OPERATORS/.libs/liboctinterp_la-op-sm-cm.o 
OPERATORS/.libs/liboctinterp_la-op-sm-cs.o 
OPERATORS/.libs/liboctinterp_la-op-sm-m.o 
OPERATORS/.libs/liboctinterp_la-op-sm-s.o 
OPERATORS/.libs/liboctinterp_la-op-sm-scm.o 
OPERATORS/.libs/liboctinterp_la-op-sm-sm.o 
OPERATORS/.libs/liboctinterp_la-op-str-m.o 
OPERATORS/.libs/liboctinterp_la-op-str-s.o 
OPERATORS/.libs/liboctinterp_la-op-str-str.o 
OPERATORS/.libs/liboctinterp_la-op-struct.o 
OPERATORS/.libs/liboctinterp_la-op-ui16-ui16.o 
OPERATORS/.libs/liboctinterp_la-op-ui32-ui32.o 
OPERATORS/.libs/liboctinterp_la-op-ui64-ui64.o 
OPERATORS/.libs/liboctinterp_la-op-ui8-ui8.o 
TEMPLATE-INST/.libs/liboctinterp_la-Array-os.o 
TEMPLATE-INST/.libs/liboctinterp_la-Array-tc.o .libs/liboctinterp_la-builtins.o 
.libs/liboctinterp_la-oct-errno.o .libs/liboctinterp_la-ops.o  
-Wl,--whole-archive ../libcruft/.libs/libranlib.a ../libgnu/.libs/libgnu.a 
-Wl,--no-whole-archive  -Wl,-rpath 
-Wl,/global/home/keith/software/octave-3.4.0/liboctave/.libs -Wl,-rpath 
-Wl,/global/home/keith/software/octave-3.4.0/libcruft/.libs -Wl,-rpath 
-Wl,/global/home/keith/local/lib/octave-3.4.0 
-L/usr/lib64/atlas_GenuineIntel_x86_64/ ../liboctave/.libs/liboctave.so 
../libcruft/.libs/libcruft.so -lfftw3 -lfftw3f -lz -lX11 -lreadline -lncurses 
-llapack -lcblas -lf77blas -latlas -L/usr/lib/gcc/x86_64-redhat-linux/4.1.2 
-L/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64 -L/lib/../lib64 
-L/usr/lib/../lib64 -lgfortranbegin -lgfortran -lstdc++ -lm -lpthread -lc 
-lgcc_s /usr/lib/gcc/x86_64-redhat-linux/4.1.2/crtendS.o 
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/crtn.o  -pthread 
-Wl,-rpath -Wl,/global/home/keith/local/lib/octave-3.4.0   -pthread -Wl,-soname 
-Wl,liboctinterp-3.4.0.so -o .libs/liboctinterp-3.4.0.so
echo bitfcns.df data.df debug.df defaults.df dirfns.df error.df file-io.df 
graphics.df help.df input.df lex.df load-path.df load-save.df ls-oct-ascii.df 
mappers.df oct-hist.df oct-parse.df octave.df pager.df pr-output.df 
sighandlers.df sparse.df strfns.df symtab.df syscalls.df sysdep.df toplev.df 
utils.df variables.df ov-base.df ov-bool-mat.df ov-cell.df ov-class.df 
ov-fcn-handle.df ov-fcn-inline.df ov-flt-re-mat.df ov-null-mat.df ov-range.df 
ov-re-mat.df ov-struct.df ov-typeinfo.df ov-usr-fcn.df ov.df ov-int16.df 
ov-int32.df ov-int64.df ov-int8.df ov-uint16.df ov-uint32.df ov-uint64.df 
ov-uint8.df pt-arg-list.df pt-binop.df pt-eval.df pt-mat.df  
DLD-FUNCTIONS/__contourc__.df DLD-FUNCTIONS/__delaunayn__.df 
DLD-FUNCTIONS/__dispatch__.df DLD-FUNCTIONS/__dsearchn__.df 
DLD-FUNCTIONS/__fltk_uigetfile__.df DLD-FUNCTIONS/__glpk__.df 
DLD-FUNCTIONS/__init_fltk__.df DLD-FUNCTIONS/__lin_interpn__.df 
DLD-FUNCTIONS/__magick_read__.df DLD-FUNCTIONS/__pchip_deriv__.df 
DLD-FUNCTIONS/__qp__.df DLD-FUNCTIONS/__voronoi__.df DLD-FUNCTIONS/amd.df 
DLD-FUNCTIONS/balance.df DLD-FUNCTIONS/besselj.df DLD-FUNCTIONS/betainc.df 
DLD-FUNCTIONS/bsxfun.df DLD-FUNCTIONS/ccolamd.df DLD-FUNCTIONS/cellfun.df 
DLD-FUNCTIONS/chol.df DLD-FUNCTIONS/colamd.df DLD-FUNCTIONS/colloc.df 
DLD-FUNCTIONS/conv2.df DLD-FUNCTIONS/convhulln.df DLD-FUNCTIONS/daspk.df 
DLD-FUNCTIONS/dasrt.df DLD-FUNCTIONS/dassl.df DLD-FUNCTIONS/det.df 
DLD-FUNCTIONS/dlmread.df DLD-FUNCTIONS/dmperm.df DLD-FUNCTIONS/dot.df 
DLD-FUNCTIONS/eig.df DLD-FUNCTIONS/eigs.df DLD-FUNCTIONS/fft.df 
DLD-FUNCTIONS/fft2.df DLD-FUNCTIONS/fftn.df DLD-FUNCTIONS/fftw.df 
DLD-FUNCTIONS/filter.df DLD-FUNCTIONS/find.df DLD-FUNCTIONS/gammainc.df 
DLD-FUNCTIONS/gcd.df DLD-FUNCTIONS/getgrent.df DLD-FUNCTIONS/getpwent.df 
DLD-FUNCTIONS/getrusage.df DLD-FUNCTIONS/givens.df DLD-FUNCTIONS/hess.df 
DLD-FUNCTIONS/hex2num.df DLD-FUNCTIONS/inv.df DLD-FUNCTIONS/kron.df 
DLD-FUNCTIONS/lookup.df DLD-FUNCTIONS/lsode.df DLD-FUNCTIONS/lu.df 
DLD-FUNCTIONS/luinc.df DLD-FUNCTIONS/matrix_type.df DLD-FUNCTIONS/max.df 
DLD-FUNCTIONS/md5sum.df DLD-FUNCTIONS/onCleanup.df DLD-FUNCTIONS/pinv.df 
DLD-FUNCTIONS/qr.df DLD-FUNCTIONS/quad.df DLD-FUNCTIONS/quadcc.df 
DLD-FUNCTIONS/qz.df DLD-FUNCTIONS/rand.df DLD-FUNCTIONS/rcond.df 
DLD-FUNCTIONS/regexp.df DLD-FUNCTIONS/schur.df DLD-FUNCTIONS/spparms.df 
DLD-FUNCTIONS/sqrtm.df DLD-FUNCTIONS/strfind.df DLD-FUNCTIONS/str2double.df 
DLD-FUNCTIONS/sub2ind.df DLD-FUNCTIONS/svd.df DLD-FUNCTIONS/syl.df 
DLD-FUNCTIONS/symbfact.df DLD-FUNCTIONS/symrcm.df DLD-FUNCTIONS/time.df 
DLD-FUNCTIONS/tril.df DLD-FUNCTIONS/tsearch.df DLD-FUNCTIONS/typecast.df 
DLD-FUNCTIONS/urlwrite.df > doc-files-t

Reply via email to