Rework advice for preventing empty .o files.
authorPaul Eggert <eggert@cs.ucla.edu>
Sun, 5 Oct 2003 07:06:59 +0000 (07:06 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Sun, 5 Oct 2003 07:06:59 +0000 (07:06 +0000)
ChangeLog
README

index 26eee3c..d7dfc99 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2003-10-05  Paul Eggert  <eggert@twinsun.com>
+
+       * README: Rework advice for preventing empty .o files.
+       Don't recommend ELIDE constructs.  Recommend <stddef.h>,
+       not <sys/types.h>.
+
 2003-10-02  Bruno Haible  <bruno@clisp.org>
 
        * modules/lchown (Include): Add lchown.h.
diff --git a/README b/README
index 1cd8bc2..25907e9 100644 (file)
--- a/README
+++ b/README
@@ -63,15 +63,13 @@ Other things:
   systems that have the function.
 * Autoconf functions can use gl_* prefix. The AC_* prefix is for
   autoconf internal functions.
-* Try to prevent that the files are built if they aren't needed on a
-  platform.  Valid excuses to this rule include ELIDE constructs that
-  lead to an empty .o file (see getopt module).
-* If you have a .c file that leads to an empty .o file on some platforms
-  (through some big #if around all the code), still make sure that after
-  preprocessing the compilation unit is not empty. This is usually fulfilled
-  if you #include <stdio.h> or #include <sys/types.h> before the big #if;
-  otherwise you need to add a #else branch containing "typedef int dummy;"
-  or "extern int dummy;".
+* Build files only if they are needed on a platform.  Look at the
+  alloca and fnmatch modules for how to achieve this.  If for some
+  reason you cannot do this, and you have a .c file that leads to an
+  empty .o file on some platforms (through some big #if around all the
+  code), then ensure that the compilation unit is not empty after
+  preprocessing.  One way to do this is to #include <stddef.h> or
+  <stdio.h> before the big #if.
 
 Portability guidelines
 ----------------------