diff options
author | Adam Chlipala <adam@chlipala.net> | 2011-08-02 14:45:19 -0400 |
---|---|---|
committer | Adam Chlipala <adam@chlipala.net> | 2011-08-02 14:45:19 -0400 |
commit | 1a96e18000db336129e0a99e3c86e7a57f152402 (patch) | |
tree | 2baf2a09402cedd80d6b24f7b001b3c5194cf017 | |
parent | 18c72ec4eb9f53935a1a1d7145b919f8a8c8684e (diff) |
Remove some GCC-specific identifier choice and documentation
-rw-r--r-- | CHANGELOG | 3 | ||||
-rw-r--r-- | Makefile.in | 2 | ||||
-rwxr-xr-x | configure | 4 | ||||
-rw-r--r-- | configure.ac | 4 | ||||
-rw-r--r-- | doc/manual.tex | 12 | ||||
-rw-r--r-- | src/c/Makefile.in | 2 | ||||
-rw-r--r-- | src/compiler.sml | 4 | ||||
-rw-r--r-- | src/config.sig | 2 | ||||
-rw-r--r-- | src/config.sml.in | 2 |
9 files changed, 19 insertions, 16 deletions
@@ -5,6 +5,9 @@ Next - Start of official tutorial - Compiler support for generating nice tutorial HTML from literate source files - New protocol 'static' for generating static pages +- Replace GCCARGS configure variable with CCARGS +- Applications consult URWEB_STACK_SIZE environment variable to determine thread + stack size - Bug fixes ======== diff --git a/Makefile.in b/Makefile.in index c34449d5..71a21371 100644 --- a/Makefile.in +++ b/Makefile.in @@ -113,6 +113,7 @@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BIN := @BIN@ CC = @CC@ +CCARGS = @CCARGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ @@ -129,7 +130,6 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ -GCCARGS = @GCCARGS@ GREP = @GREP@ INCLUDE := @INCLUDE@ INSTALL = @INSTALL@ @@ -615,7 +615,7 @@ LIBOBJS SQHEADER MSHEADER PGHEADER -GCCARGS +CCARGS SITELISP INCLUDE LIB @@ -14578,7 +14578,7 @@ Ur/Web configuration: include directory: INCLUDE $INCLUDE site-lisp directory: SITELISP $SITELISP C compiler: CC $CC - Extra GCC args: GCCARGS $GCCARGS + Extra CC args: CCARGS $CCARGS Postgres C header: PGHEADER $PGHEADER MySQL C header: MSHEADER $MSHEADER SQLite C header: SQHEADER $SQHEADER diff --git a/configure.ac b/configure.ac index 2cd5f2da..a4563564 100644 --- a/configure.ac +++ b/configure.ac @@ -89,7 +89,7 @@ AC_SUBST(BIN) AC_SUBST(LIB) AC_SUBST(INCLUDE) AC_SUBST(SITELISP) -AC_SUBST(GCCARGS) +AC_SUBST(CCARGS) AC_SUBST(PGHEADER) AC_SUBST(MSHEADER) AC_SUBST(SQHEADER) @@ -111,7 +111,7 @@ Ur/Web configuration: include directory: INCLUDE $INCLUDE site-lisp directory: SITELISP $SITELISP C compiler: CC $CC - Extra GCC args: GCCARGS $GCCARGS + Extra CC args: CCARGS $CCARGS Postgres C header: PGHEADER $PGHEADER MySQL C header: MSHEADER $MSHEADER SQLite C header: SQHEADER $SQHEADER diff --git a/doc/manual.tex b/doc/manual.tex index 6691876d..53e1eb8c 100644 --- a/doc/manual.tex +++ b/doc/manual.tex @@ -56,7 +56,7 @@ make sudo make install \end{verbatim} -Some other packages must be installed for the above to work. At a minimum, you need a standard UNIX shell, with standard UNIX tools like sed and GCC in your execution path; MLton, the whole-program optimizing compiler for Standard ML; and the development files for the OpenSSL C library. As of this writing, in the ``testing'' version of Debian Linux, this command will install the more uncommon of these dependencies: +Some other packages must be installed for the above to work. At a minimum, you need a standard UNIX shell, with standard UNIX tools like sed and GCC (or an alternate C compiler) in your execution path; MLton, the whole-program optimizing compiler for Standard ML; and the development files for the OpenSSL C library. As of this writing, in the ``testing'' version of Debian Linux, this command will install the more uncommon of these dependencies: \begin{verbatim} apt-get install mlton libssl-dev \end{verbatim} @@ -87,13 +87,13 @@ apt-get install emacs-goodies-el If you don't want to install the Emacs mode, run \texttt{./configure} with the argument \texttt{--without-emacs}. -Even with the right packages installed, configuration and building might fail to work. After you run \texttt{./configure}, you will see the values of some named environment variables printed. You may need to adjust these values to get proper installation for your system. To change a value, store your preferred alternative in the corresponding UNIX environment variable, before running \texttt{./configure}. For instance, here is how to change the list of extra arguments that the Ur/Web compiler will pass to GCC on every invocation. Some older GCC versions need this setting to mask a bug in function inlining. +Even with the right packages installed, configuration and building might fail to work. After you run \texttt{./configure}, you will see the values of some named environment variables printed. You may need to adjust these values to get proper installation for your system. To change a value, store your preferred alternative in the corresponding UNIX environment variable, before running \texttt{./configure}. For instance, here is how to change the list of extra arguments that the Ur/Web compiler will pass to the C compiler and linker on every invocation. Some older GCC versions need this setting to mask a bug in function inlining. \begin{verbatim} -GCCARGS=-fno-inline ./configure +CCARGS=-fno-inline ./configure \end{verbatim} -Since the author is still getting a handle on the GNU Autotools that provide the build system, you may need to do some further work to get started, especially in environments with significant differences from Linux (where most testing is done). The variables \texttt{PGHEADER}, \texttt{MSHEADER}, and \texttt{SQHEADER} may be used to set the proper C header files to include for the development libraries of PostgreSQL, MySQL, and SQLite, respectively. To get libpq to link, one OS X user reported setting \texttt{GCCARGS="-I/opt/local/include -L/opt/local/lib/postgresql84"}, after creating a symbolic link with \texttt{ln -s /opt/local/include/postgresql84 /opt/local/include/postgresql}. +Since the author is still getting a handle on the GNU Autotools that provide the build system, you may need to do some further work to get started, especially in environments with significant differences from Linux (where most testing is done). The variables \texttt{PGHEADER}, \texttt{MSHEADER}, and \texttt{SQHEADER} may be used to set the proper C header files to include for the development libraries of PostgreSQL, MySQL, and SQLite, respectively. To get libpq to link, one OS X user reported setting \texttt{CCARGS="-I/opt/local/include -L/opt/local/lib/postgresql84"}, after creating a symbolic link with \texttt{ln -s /opt/local/include/postgresql84 /opt/local/include/postgresql}. The Emacs mode can be set to autoload by adding the following to your \texttt{.emacs} file. @@ -163,7 +163,7 @@ Here is the complete list of directive forms. ``FFI'' stands for ``foreign func \item \texttt{time}: maximum running time of a single page request, in units of approximately 0.1 seconds \item \texttt{transactionals}: maximum number of custom transactional actions (e.g., sending an e-mail) that may be run in a single page generation \end{itemize} -\item \texttt{link FILENAME} adds \texttt{FILENAME} to the list of files to be passed to the GCC linker at the end of compilation. This is most useful for importing extra libraries needed by new FFI modules. +\item \texttt{link FILENAME} adds \texttt{FILENAME} to the list of files to be passed to the linker at the end of compilation. This is most useful for importing extra libraries needed by new FFI modules. \item \texttt{minHeap NUMBYTES} sets the initial size for thread-local heaps used in handling requests. These heaps grow automatically as needed (up to any maximum set with \texttt{limit}), but each regrow requires restarting the request handling process. \item \texttt{noXsrfProtection URIPREFIX} turns off automatic cross-site request forgery protection for the page handler identified by the given URI prefix. This will avoid checking cryptographic signatures on cookies, which is generally a reasonable idea for some pages, such as login pages that are going to discard all old cookie values, anyway. \item \texttt{onError Module.var} changes the handling of fatal application errors. Instead of displaying a default, ugly error 500 page, the error page will be generated by calling function \texttt{Module.var} on a piece of XML representing the error message. The error handler should have type $\mt{xbody} \to \mt{transaction} \; \mt{page}$. Note that the error handler \emph{cannot} be in the application's main module, since that would register it as explicitly callable via URLs. @@ -2382,7 +2382,7 @@ The program is translated to what is more or less a subset of C. If any use of \subsection{C Compilation and Linking} -The output of the last phase is pretty-printed as C source code and passed to GCC. +The output of the last phase is pretty-printed as C source code and passed to the C compiler. \end{document}
\ No newline at end of file diff --git a/src/c/Makefile.in b/src/c/Makefile.in index 4b567a16..2c02db8d 100644 --- a/src/c/Makefile.in +++ b/src/c/Makefile.in @@ -117,6 +117,7 @@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BIN = @BIN@ CC = @CC@ +CCARGS = @CCARGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ @@ -133,7 +134,6 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ -GCCARGS = @GCCARGS@ GREP = @GREP@ INCLUDE = @INCLUDE@ INSTALL = @INSTALL@ diff --git a/src/compiler.sml b/src/compiler.sml index f12bcbfe..e47e5e2a 100644 --- a/src/compiler.sml +++ b/src/compiler.sml @@ -1320,11 +1320,11 @@ fun compileC {cname, oname, ename, libs, profile, debug, link = link'} = else "-L" ^ Config.lib ^ "/.. -lurweb " ^ #linkDynamic proto - val compile = Config.ccompiler ^ " " ^ Config.gccArgs ^ " -Wimplicit -Werror -Wno-unused-value -O3 -I " ^ Config.includ + val compile = Config.ccompiler ^ " " ^ Config.ccArgs ^ " -Wimplicit -Werror -Wno-unused-value -O3 -I " ^ Config.includ ^ " " ^ #compile proto ^ " -c " ^ escapeFilename cname ^ " -o " ^ escapeFilename oname - val link = Config.ccompiler ^ " -Werror -O3 -lm -pthread " ^ Config.gccArgs ^ " " ^ lib ^ " " ^ Config.openssl ^ " " ^ escapeFilename oname + val link = Config.ccompiler ^ " -Werror -O3 -lm -pthread " ^ Config.ccArgs ^ " " ^ lib ^ " " ^ Config.openssl ^ " " ^ escapeFilename oname ^ " -o " ^ escapeFilename ename ^ " " ^ libs val (compile, link) = diff --git a/src/config.sig b/src/config.sig index 98455a3c..65c3926b 100644 --- a/src/config.sig +++ b/src/config.sig @@ -9,7 +9,7 @@ signature CONFIG = sig val libJs : string val ccompiler : string - val gccArgs : string + val ccArgs : string val openssl : string val pgheader : string diff --git a/src/config.sml.in b/src/config.sml.in index bb5648c9..cd8d941a 100644 --- a/src/config.sml.in +++ b/src/config.sml.in @@ -13,7 +13,7 @@ val libJs = OS.Path.joinDirFile {dir = lib, file = "js"} val ccompiler = "@CC@" -val gccArgs = "@GCCARGS@" +val ccArgs = "@CCARGS@" val openssl = "@OPENSSL_LDFLAGS@ @OPENSSL_LIBS@" val pgheader = "@PGHEADER@" |