Taper was primarily designed for linux running on an intel
processor. With linux now becoming very multi-platform, changes have been
made to taper to enable cross platform support. Some of the changes are:
- All data is written to the tape in little endian format. If you define
the TAPER_BIG_ENDIAN makefile option, taper will convert everything
read from the tape to big endian so that your machine can use it. Even
if you make a backup from a big endian machine, the data on the tape will
be in little endian format.
- The info files are also stored in little endian format so that they
should be portable accross different architectures.
- Data types are defined in config.h. Taper uses 32 bit signed
& unsigned data, unsigned 16 bit, and 8 bit signed & unsigned data.
Change the appropriate types for your machine. Attributes such as
gid_t, uid_t, dev_t, umode_t, and time_t are hard-coded to the intel
defaults of unsigned short (unsigned 16 bit) and long (32 bits)
respectively. If your machine uses
different types for these, then you should look at the code in
tapeio.c, specifically, the functions tape_read_fi and tape_write_fi
and modify it to convert the intel types to a type applicable for your
machine. If your machine uses longer data types than an unsigned 16 bit
used by intel linux, then, for the time being, you are in strife.
In a future taper version, I intend to move away from the 16 bit
format and use my own representation. However this will mean that existing
archives are incompatible with the new format, so I won't be doing this
for a while.
- Since version 6.3, taper aligns all structures on addresses
that are divisable by 4. It does this by padding out the strings so that
they have a length divisable by 4. Then an offset is added (which is the
number of bytes that the structure needs to make it a length of a multiple
of 4). Versions less than 6.3 do not support this, so it is unlikely that
these archives will work on machines that require aligned addresses.
However, for machines that do not require aligned access, there is no problem.
- Look at config.h which has a couple of defines
you may need to change.