HP3000-L Archives

November 2001, Week 2

HP3000-L@RAVEN.UTC.EDU

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Mark Wonsil <[log in to unmask]>
Reply To:
Date:
Sun, 11 Nov 2001 22:22:02 -0500
Content-Type:
text/plain
Parts/Attachments:
text/plain (203 lines)
Peter da Silva declares:
>But the important thing about UNIX is, you can run the same software on
>any UNIX. ...

This has not been my experience at all.  I worked for a software company
that has a product that runs on the 3000, VMS, HP-UX, AIX, and at least two
of DEC's Unix OS's.  In not one case could we just recompile on the new
machine and have it run properly.  Different Unix implementations had
different libraries (especially in memory management).  The code was filled
with ifdefs for each OS.

You will find this in many Posix ports of well known U*ix applications too.
Below is a sample of what comes up if you grep 'ifdef' on the port of wget
by Lars Appel.  The code is different depending if it's Linux, AIX or BSD.
There's different code depending on what functions exist in each library.
There are a lot workarounds to get stuff to compile.  I'm not saying it is
impossible, but it has been my experience that there's usually something you
have to tweak when going from one Unix system to another.  This is not only
true with source code but also with shell scripts too.  Maybe things are
better from one Linux to another but certainly not one Unix to another -
IMHO.

INVENT3K:/usr/contrib/src/wget-1.6/src$ grep ifdef *
ChangeLog:      * ftp.c (ftp_retrieve_list): Use #ifdef HAVE_STRUCT_UTIMBUF
alloca.c:#ifdef HAVE_CONFIG_H
alloca.c:#ifdef HAVE_STRING_H
alloca.c:#ifdef HAVE_STDLIB_H
alloca.c:#ifdef emacs
alloca.c:#ifdef emacs
alloca.c:#ifdef static
alloca.c:#ifdef emacs
alloca.c:#ifdef emacs
alloca.c:#ifdef DEBUG_I00AFUNC
alloca.c:#ifdef CRAY2
alloca.c:#ifdef DEBUG_I00AFUNC
alloca.c:#ifdef DEBUG_I00AFUNC
ansi2knr.c:             undefined preprocessor symbols as 0; changed all
#ifdefs
ansi2knr.c:# ifdef BSD
ansi2knr.c:#  ifdef VMS
ansi2knr.c:# ifdef MSDOS
ansi2knr.c:#  ifdef VMS
ansi2knr.c:#ifdef isascii
cmpt.c:#ifdef HAVE_STRING_H
cmpt.c:#ifdef HAVE_UNISTD_H
cmpt.c:#ifdef _LIBC
cmpt.c:#ifdef _LIBC
cmpt.c:#ifdef _LIBC
cmpt.c:#ifdef weak_alias
cmpt.c:#ifdef _LIBC
cmpt.c:#ifdef _NL_CURRENT
cmpt.c:#ifdef _LIBC
cmpt.c:#ifdef _NL_CURRENT
cmpt.c:#ifdef _NL_CURRENT
cmpt.c:#ifdef _NL_CURRENT
cmpt.c:#ifdef _NL_CURRENT
cmpt.c:#ifdef _NL_CURRENT
cmpt.c:#ifdef _NL_CURRENT
cmpt.c:#ifdef _NL_CURRENT
cmpt.c:#ifdef _NL_CURRENT
cmpt.c:#ifdef _NL_CURRENT
config.h.in:#ifdef __GNUC__
config.h.in:#  ifdef _AIX
config.h.in:   #ifdef __linux__
config.h.in:#ifdef __linux__
connect.c:#ifdef HAVE_UNISTD_H
connect.c:#ifdef WINDOWS
connect.c:#ifdef HAVE_STRING_H
connect.c:#ifdef HAVE_SYS_SELECT_H
connect.c:#ifdef HAVE_SELECT
connect.c:#ifdef HAVE_SELECT
connect.c:#ifdef HAVE_SELECT
connect.c:#ifdef HAVE_SELECT
ftp-basic.c:#ifdef HAVE_STRING_H
ftp-basic.c:#ifdef HAVE_UNISTD_H
ftp-basic.c:#ifdef WINDOWS
ftp-basic.c:#ifdef USE_OPIE
ftp-basic.c:#ifdef USE_OPIE
ftp-ls.c:#ifdef HAVE_STRING_H
ftp-ls.c:#ifdef HAVE_UNISTD_H
ftp-opie.c:#ifdef HAVE_STRING_H
ftp.c:#ifdef HAVE_STRING_H
ftp.c:#ifdef HAVE_UNISTD_H
ftp.c:#ifdef WINDOWS
ftp.c:#ifdef HAVE_SYMLINK
getopt.c:#ifdef HAVE_CONFIG_H
getopt.c:#ifdef HAVE_STRING_H
getopt.c:#ifdef        __GNU_LIBRARY__
getopt.c:#ifdef GETOPT_COMPAT
getopt.c:#ifdef GETOPT_COMPAT
getopt.c:#ifdef GETOPT_COMPAT
getopt.c:#ifdef GETOPT_COMPAT
getopt.c:#ifdef TEST
getopt.h:#ifdef __cplusplus
getopt.h:#ifdef __cplusplus
headers.c:#ifdef HAVE_STRING_H
host.c:#ifdef HAVE_STRING_H
host.c:#ifdef WINDOWS
host.c:#ifdef HAVE_SYS_UTSNAME_H
host.c:#ifdef WORDS_BIGENDIAN
host.c:#ifdef MY_HOST
host.c:#ifdef HAVE_UNAME
host.c:#ifdef HAVE_GETHOSTNAME
html.c:#ifdef HAVE_STRING_H
http.c:#ifdef HAVE_STRING_H
http.c:#ifdef HAVE_UNISTD_H
http.c:#ifdef WINDOWS
http.c:#ifdef DEBUG
http.c:#ifdef WINDOWS
http.c:#ifdef USE_DIGEST
http.c:#ifdef USE_DIGEST
init.c:#ifdef HAVE_UNISTD_H
init.c:#ifdef HAVE_STRING_H
init.c:#ifdef WINDOWS
init.c:#ifdef HAVE_PWD_H
init.c:#ifdef DEBUG
init.c:#ifdef HAVE_SELECT
init.c:#ifdef SYSTEM_WGETRC
init.c:#ifdef SYSTEM_WGETRC
init.c:#ifdef DEBUG
log.c:#ifdef HAVE_STRING_H
log.c:#ifdef HAVE_STDARG_H
log.c:#ifdef HAVE_UNISTD_H
log.c:#ifdef WGET_USE_STDARG
log.c:#ifdef WGET_USE_STDARG
log.c:#ifdef DEBUG
log.c:#ifdef WGET_USE_STDARG
log.c:#ifdef WGET_USE_STDARG
log.c:#ifdef HAVE_ISATTY
main.c:#ifdef HAVE_UNISTD_H
main.c:#ifdef HAVE_STRING_H
main.c:#ifdef HAVE_SIGNAL_H
main.c:#ifdef HAVE_NLS
main.c:#ifdef HAVE_LOCALE_H
main.c:#ifdef HAVE_NLS
main.c:#ifdef LC_MESSAGES
main.c:#ifdef WINDOWS
main.c:#ifdef DEBUG
main.c:#ifdef WINDOWS
main.c:#ifdef WINDOWS
main.c:#ifdef WINDOWS
main.c:#ifdef HAVE_SIGNAL
main.c:#ifdef HAVE_SIGNAL
md5.c:#ifdef HAVE_CONFIG_H
md5.c:#ifdef HAVE_STRING_H
md5.c:#ifdef _LIBC
md5.c:#ifdef WORDS_BIGENDIAN
md5.h:#ifdef _LIBC
mswindows.c:#ifdef CTRLC_BACKGND
mswindows.c:#ifdef CTRLBREAK_BACKGND
mswindows.h:#ifdef _MSC_VER
netrc.c:#ifdef HAVE_CONFIG_H
netrc.c:#ifdef HAVE_STRING_H
netrc.c:#ifdef STANDALONE
netrc.c:#ifdef STANDALONE
options.h:#ifdef HAVE_SELECT
options.h:#ifdef DEBUG
recur.c:#ifdef HAVE_STRING_H
recur.c:#ifdef HAVE_UNISTD_H
retr.c:#ifdef HAVE_UNISTD_H
retr.c:#ifdef HAVE_STRING_H
retr.c:#ifdef WINDOWS
retr.c:# ifdef HAVE_GETTIMEOFDAY
retr.c:# ifdef HAVE_GETTIMEOFDAY
snprintf.c: *    moved TEST_SNPRINTF stuff out of HAVE_SNPRINTF ifdef.
snprintf.c:#ifdef HAVE_CONFIG_H
snprintf.c:#ifdef HAVE_LONG_DOUBLE
snprintf.c:#ifdef HAVE_LONG_LONG
snprintf.c:#ifdef HAVE_STDARGS
snprintf.c:#ifdef DEBUG_SNPRINTF
snprintf.c:#ifdef DEBUG_SNPRINTF
snprintf.c:#ifdef HAVE_STDARGS
snprintf.c:#ifdef TEST_SNPRINTF
snprintf.c:#ifdef HAVE_LONG_LONG
snprintf.c:#ifdef HAVE_LONG_LONG
sysdep.h:#ifdef TIME_WITH_SYS_TIME
sysdep.h:#ifdef HAVE_SYS_TIME_H
sysdep.h:#ifdef WINDOWS
sysdep.h:#ifdef __EMX__
sysdep.h:#ifdef __sparc
sysdep.h:   This used to be only within `#ifdef STDC_HEADERS', but it got
sysdep.h:   added an extra `#ifdef sun' guard.  */
sysdep.h:#ifdef sun
url.c:#ifdef HAVE_STRING_H
url.c:#ifdef HAVE_UNISTD_H
url.c:#ifdef DEBUG
url.c:#ifdef WINDOWS
utils.c:#ifdef HAVE_STRING_H
utils.c:#ifdef HAVE_UNISTD_H
utils.c:#ifdef HAVE_PWD_H
utils.c:#ifdef HAVE_UTIME_H
utils.c:#ifdef HAVE_SYS_UTIME_H
utils.c:#ifdef NeXT
utils.c:#ifdef HAVE_STRUCT_UTIMBUF
utils.c:#ifdef HAVE_ACCESS
wget.h:#ifdef HAVE_NLS
wget.h:# ifdef HAVE_LIBINTL_H
wget.h:#ifdef DEBUG
wget.h:#ifdef __GNUC__

* To join/leave the list, search archives, change list settings, *
* etc., please visit http://raven.utc.edu/archives/hp3000-l.html *

ATOM RSS1 RSS2