[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Understanding the Octave build process: a small change to one DLD-FUNCTI
From: |
John Swensen |
Subject: |
Understanding the Octave build process: a small change to one DLD-FUNCTION source caused massive relinking |
Date: |
Thu, 23 Sep 2010 13:04:32 -0400 |
I don't understand the whole octave build process (and I would bet there are
only a handful or two of people who actually do). I do, however, run the build
process frequently and sometimes notice things that seem odd. For example, I
have been hacking on the __magick_read__.cc file in the DLD-FUNCTIONS
direectory and have noticed that the build process seems to be re-linking every
single DLD-FUNCTION regardless of whether the underlying sources were edited.
For example, I only edited __magick_read__.cc, but when I run 'make' I get
output similar to what is listed at the end of this message for each file in
DLD-FUNCTIONS.
Any thoughts on why this is happening, whether it is unique to my machine (OSX
10.6 with MacPort to satisfy dependencies), and if it is a fundamental
limitation in how the build system is set up? I wouldn't make a fuss about it,
but even on a relatively new MacBook Pro any little change to
__magick_read__.cc takes ~3 minutes to compile.
John Swensen
==== BEGIN MAKE OUTPUT SNIPPET ====
libtool: link: rm -fr DLD-FUNCTIONS/.libs/symrcm.0.so
DLD-FUNCTIONS/.libs/symrcm.a DLD-FUNCTIONS/.libs/symrcm.la
DLD-FUNCTIONS/.libs/symrcm.lai DLD-FUNCTIONS/.libs/symrcm.so
libtool: link: (cd DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a && ar x
"/Users/jpswensen/src/octave/src/../libgnu/.libs/libgnu.a")
libtool: link: g++-mp-4.4 -Wl,-undefined -Wl,dynamic_lookup -o
DLD-FUNCTIONS/.libs/symrcm.0.so -bundle
DLD-FUNCTIONS/.libs/DLD_FUNCTIONS_symrcm_la-symrcm.o
-Wl,-force_load,../libcruft/.libs/libranlib.a
-Wl,-force_load,../libgnu/.libs/libgnu.a -L/opt/local-native/lib
./.libs/liboctinterp.dylib
-L/opt/local-native/lib/gcc44/gcc/x86_64-apple-darwin10/4.4.4
-L/opt/local-native/lib/gcc44/gcc/x86_64-apple-darwin10/4.4.4/../../..
/Users/jpswensen/src/octave/liboctave/.libs/liboctave.dylib
/opt/local-native/lib/libhdf5.dylib /opt/local-native/lib/libsz.dylib
/opt/local-native/lib/libfontconfig.dylib /opt/local-native/lib/libexpat.dylib
/opt/local-native/lib/libfreetype.dylib -lz
/opt/local-native/lib/libiconv.dylib /opt/local-native/lib/libX11.dylib
/opt/local-native/lib/libxcb.dylib /opt/local-native/lib/libXau.dylib
/opt/local-native/lib/libXdmcp.dylib ../liboctave/.libs/liboctave.dylib
/Users/jpswensen/src/octave/libcruft/.libs/libcruft.dylib -larpack -lqrupdate
/opt/local-native/lib/libfftw3.dylib /opt/local-native/lib/libfftw3f.dylib
-lreadline -lncurses /opt/local-native/lib/libpcre.dylib -ldl
../libcruft/.libs/libcruft.dylib -llapack -lcblas -lf77blas -latlas
/opt/local-native/lib/gcc44/libgfortran.dylib -lcholmod -lumfpack -lamd -lcamd
-lcolamd -lccolamd -lcxsparse -lm -m64 -m64 -pthread -m64 -Wl,-dylib_file
-Wl,/opt/octave/hg20100919/lib/octave-3.3.52+/liboctave-3.3.52+.dylib:/Users/jpswensen/src/octave/liboctave/.libs/liboctave.dylib
-Wl,-dylib_file
-Wl,/opt/octave/hg20100919/lib/octave-3.3.52+/libcruft-3.3.52+.dylib:/Users/jpswensen/src/octave/libcruft/.libs/libcruft.dylib
-Wl,-dylib_file
-Wl,/opt/octave/hg20100919/lib/octave-3.3.52+/libcruft-3.3.52+.dylib:/Users/jpswensen/src/octave/libcruft/.libs/libcruft.dylib
-Wl,-dylib_file
-Wl,/opt/octave/hg20100919/lib/octave-3.3.52+/libcruft-3.3.52+.dylib:/Users/jpswensen/src/octave/libcruft/.libs/libcruft.dylib
-pthread
libtool: link: warning:
`/opt/local-native/lib/gcc44/gcc/x86_64-apple-darwin10/4.4.4/../../../libgfortran.la'
seems to be moved
libtool: link: ar cru DLD-FUNCTIONS/.libs/symbfact.a
DLD-FUNCTIONS/DLD_FUNCTIONS_symbfact_la-symbfact.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/advnst.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/genbet.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/genchi.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/genexp.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/genf.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/gengam.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/genmn.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/genmul.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/gennch.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/gennf.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/gennor.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/genprm.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/genunf.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/getcgn.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/getsd.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/ignbin.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/ignlgi.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/ignnbn.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/ignpoi.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/ignuin.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/initgn.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/inrgcm.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/lennob.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/mltmod.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/phrtsd.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/qrgnin.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/ranf.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/setall.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/setant.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/setgmn.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/setsd.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/sexpo.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/sgamma.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/snorm.o
DLD-FUNCTIONS/.libs/symbfact.lax/libranlib.a/wrap.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/asnprintf.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/basename-lgpl.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/c-ctype.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/c-strcasecmp.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/c-strncasecmp.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/canonicalize-lgpl.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/chdir-long.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/chown.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/cloexec.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/close-hook.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/dirname-lgpl.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/dup-safer.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/error.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/exitfail.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/fchmodat.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/fchownat.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/fcntl.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/fd-safer.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/fdopendir.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/fstatat.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/getcwd.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/getopt.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/getopt1.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/glob.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/lchown.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/link.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/localcharset.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/lstat.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/malloca.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/md5.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/mempcpy.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/memrchr.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/mkdirat.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/mkfifo.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/mktime.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/nanosleep.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/open.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/openat-die.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/openat-proc.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/openat.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/pipe-safer.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/printf-args.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/printf-parse.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/progname.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/readlink.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/rename.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/save-cwd.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/sockets.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/stat.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/strftime.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/stripslash.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/strnlen1.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/symlink.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/unlink.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/unlinkat.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/vasnprintf.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/xalloc-die.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/xgetcwd.o
DLD-FUNCTIONS/.libs/symbfact.lax/libgnu.a/xmalloc.o
- Understanding the Octave build process: a small change to one DLD-FUNCTION source caused massive relinking,
John Swensen <=