Fix compiling under diet libc

Some recent changes had caused diet libc support to bitrot.  Fix up
missing header files and other portability fixups needed for dietlibc.
(Many of these changes also improve general portability.)

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
bitmap-optimize
Theodore Ts'o 2008-09-12 09:10:39 -04:00
parent f8bd55160c
commit 0eeec8ac61
13 changed files with 33 additions and 7 deletions

View File

@ -141,7 +141,7 @@ tst_crc32: $(srcdir)/crc32.c $(LIBEXT2FS)
tst_refcount: ea_refcount.c
@echo " LD $@"
@$(CC) -o tst_refcount $(srcdir)/ea_refcount.c \
$(ALL_CFLAGS) -DTEST_PROGRAM $(LIBCOM_ERR)
$(ALL_CFLAGS) -DTEST_PROGRAM $(LIBCOM_ERR) $(LIBEXT2FS)
tst_region: region.c
@echo " LD $@"

View File

@ -36,6 +36,9 @@
#include <string.h>
#include <ctype.h>
#ifdef UNITTEST
#undef ENABLE_NLS
#endif
#include "e2fsck.h"
#include "crc32defs.h"

View File

@ -11,6 +11,9 @@
#include <string.h>
#include <stdio.h>
#ifdef TEST_PROGRAM
#undef ENABLE_NLS
#endif
#include "e2fsck.h"
/*

View File

@ -246,7 +246,7 @@ static _INLINE_ void expand_inode_expression(char ch,
struct ext2_inode_large *large_inode;
const char * time_str;
time_t t;
int do_gmt = -1;
static int do_gmt = -1;
if (!ctx || !ctx->inode)
goto no_inode;
@ -289,15 +289,17 @@ static _INLINE_ void expand_inode_expression(char ch,
printf("0%o", inode->i_mode);
break;
case 'M':
#ifdef __dietlibc__
/* The diet libc doesn't respect the TZ environemnt variable */
if (do_gmt == -1) {
time_str = getenv("TZ");
if (!time_str)
time_str = "";
do_gmt = !strcmp(time_str, "GMT");
do_gmt = !strcmp(time_str, "GMT0");
}
#endif
t = inode->i_mtime;
time_str = asctime(do_gmt ? gmtime(&t) : localtime(&t));
time_str = asctime((do_gmt > 0) ? gmtime(&t) : localtime(&t));
printf("%.24s", time_str);
break;
case 'F':

View File

@ -1206,6 +1206,8 @@ static EXT2_QSORT_TYPE process_inode_cmp(const void *a, const void *b)
ib_b->inode.i_block[EXT2_IND_BLOCK]);
if (ret == 0)
ret = ib_a->inode.i_file_acl - ib_b->inode.i_file_acl;
if (ret == 0)
ret = ib_a->ino - ib_b->ino;
return ret;
}

View File

@ -14,6 +14,9 @@
#endif
#include <string.h>
#ifdef TEST_PROGRAM
#undef ENABLE_NLS
#endif
#include "e2fsck.h"
struct region_el {

View File

@ -155,6 +155,7 @@ char *getcwd ();
# endif
# endif
# ifndef HAVE_STPCPY
#define stpcpy(dest, src) my_stpcpy(dest, src)
static char *stpcpy (char *dest, const char *src);
# endif
# ifndef HAVE_MEMPCPY

View File

@ -58,6 +58,7 @@
# endif
#else
# ifndef HAVE_STPCPY
#define stpcpy(dest, src) my_stpcpy(dest, src)
static char *stpcpy (char *dest, const char *src);
# endif
#endif

View File

@ -5,6 +5,11 @@
* Version 2. See the file COPYING for more details.
*/
#if HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#include <ext2fs/ext2_types.h>
#include "crc16.h"
/** CRC table for the CRC-16. The poly is 0x8005 (x16 + x15 + x2 + 1) */

View File

@ -15,8 +15,6 @@
#ifndef __CRC16_H
#define __CRC16_H
#include <ext2fs/ext2_types.h>
/* for an unknown reason, PPC treats __u16 as signed and keeps doing sign
* extension on the value. Instead, use only the low 16 bits of an
* unsigned int for holding the CRC value to avoid this.

View File

@ -9,6 +9,10 @@
* %End-Header%
*/
#if HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#include "ext2_fs.h"
#include "ext2fs.h"
#include "crc16.h"

View File

@ -9,6 +9,10 @@
* %End-Header%
*/
#if HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#include "ext2fs/ext2_fs.h"
#include "ext2fs/ext2fs.h"
#include "ext2fs/crc16.h"

View File

@ -21,7 +21,7 @@ DYLD_LIBRARY_PATH=../lib:../lib/ext2fs:../lib/e2p:../lib/et:../lib/ss
TMPFILE=./test.img
export LD_LIBRARY_PATH
export DYLD_LIBRARY_PATH
TZ=GMT
TZ=GMT0
export TZ
LC_ALL=C
export LC_ALL