This page is aimed at both Debian and upstream developers, talking about things to keep in mind when developing a program or packaging it so that it remains portable.
- See also
- Cross Compiling
- Best Practices
- Programming Considerations
- Feature vs System detection
- Build Failures
- Runtime Failures
- The system the software is being compiled on. In GNU terminology, this is the "build" system.
- The system the software will run on. GNU calls this "host".
($DEB_BUILD_ARCH, $DEB_HOST_ARCH & co.)
Building and Running Tools
Autoconf and Automake
(how to build a toplevel project)
(Link to ArchitectureSpecificsMemo?)
Floating Point Behaviour
Feature vs System detection
System detection (usually wrong)
CPP system macros
Other system checks ...
Check for specific functionality (good)
(PATH_MAX and friends)
Optional POSIX features
(linuxisms: mount, linuxthreads abuse) (bsdisms: sys_errlist vs. strerror())
devfs on kFreeBSD
(some nodes are not allowed on FreeBSD's devfs)
Missing kernel features
Hardcoded values instead of using macros