Bug 135741 - Truecrypt does not compile with 2.6.17-rc kernel
|
Bug#:
135741
|
Product: Gentoo Linux
|
Version: 2006.0
|
Platform: x86
|
|
OS/Version: Linux
|
Status: RESOLVED
|
Severity: minor
|
Priority: P3
|
|
Resolution: FIXED
|
Assigned To: crypto@gentoo.org
|
Reported By: radek.dvorak@gmail.com
|
|
Component: Applications
|
|
|
URL:
|
|
Summary: Truecrypt does not compile with 2.6.17-rc kernel
|
|
Keywords:
|
|
Status Whiteboard:
|
|
Opened: 2006-06-06 03:04 0000
|
* Determining the location of the kernel source code
* Found kernel source directory:
* /usr/src/linux
* Found sources for kernel version:
* 2.6.17-rc3-no2Non_E
* Checking for Device mapper support (BLK_DEV_DM) ... [ ok
]
>>> Unpacking source...
>>> Unpacking truecrypt-4.2-source-code.tar.gz to /var/tmp/portage/truecrypt-4.2/work
* Applying truecrypt-4.2-makefile.patch ... [ ok
]
>>> Source unpacked.
>>> Compiling source in /var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2 ...
* Preparing truecrypt module
make[1]: Entering directory `/usr/src/linux-2.6.17-rc3-no2'
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Crypto/Aescrypt.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Crypto/Aeskey.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Crypto/Aestab.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Crypto/Bf_ecb.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Crypto/Bf_enc.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Crypto/Bf_skey.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Crypto/C_ecb.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Crypto/C_enc.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Crypto/C_skey.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Crypto/Des.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Crypto/Des_enc.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Crypto/Ecb3_enc.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Crypto/Serpent.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Crypto/Set_key.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Crypto/Twofish.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Common/Crc.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Common/Crypto.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Common/Endian.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Common/GfMul.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Common/Tests.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/Dm-target.o
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/Dm-target.c: In
function
* Determining the location of the kernel source code
* Found kernel source directory:
* /usr/src/linux
* Found sources for kernel version:
* 2.6.17-rc3-no2Non_E
* Checking for Device mapper support (BLK_DEV_DM) ... [ ok
]
>>> Unpacking source...
>>> Unpacking truecrypt-4.2-source-code.tar.gz to /var/tmp/portage/truecrypt-4.2/work
* Applying truecrypt-4.2-makefile.patch ... [ ok
]
>>> Source unpacked.
>>> Compiling source in /var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2 ...
* Preparing truecrypt module
make[1]: Entering directory `/usr/src/linux-2.6.17-rc3-no2'
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Crypto/Aescrypt.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Crypto/Aeskey.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Crypto/Aestab.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Crypto/Bf_ecb.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Crypto/Bf_enc.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Crypto/Bf_skey.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Crypto/C_ecb.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Crypto/C_enc.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Crypto/C_skey.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Crypto/Des.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Crypto/Des_enc.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Crypto/Ecb3_enc.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Crypto/Serpent.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Crypto/Set_key.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Crypto/Twofish.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Common/Crc.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Common/Crypto.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Common/Endian.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Common/GfMul.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/../../Common/Tests.o
CC [M]
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/Dm-target.o
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/Dm-target.c: In
function truecrypt_ctr:
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/Dm-target.c:164:
error: SECTOR_FORMAT undeclared (first use in this function)
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/Dm-target.c:164:
error: (Each undeclared identifier is reported only once
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/Dm-target.c:164:
error: for each function it appears in.)
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/Dm-target.c: In
function truecrypt_endio:
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/Dm-target.c:378:
error: expected ) before SECTOR_FORMAT
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/Dm-target.c: In
function truecrypt_map:
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/Dm-target.c:423:
error: expected ) before SECTOR_FORMAT
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/Dm-target.c:550:
error: expected ) before SECTOR_FORMAT
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/Dm-target.c: In
function truecrypt_status:
/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/Dm-target.c:572:
error: expected ) before SECTOR_FORMAT
make[2]: ***
[/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel/Dm-target.o]
Error 1
make[1]: ***
[_module_/var/tmp/portage/truecrypt-4.2/work/truecrypt-4.2/Linux/Kernel] Error
2
make[1]: Leaving directory `/usr/src/linux-2.6.17-rc3-no2'
make: *** [truecrypt] Error 2
AMD64?
Was mentioned here:
https://bugs.gentoo.org/show_bug.cgi?id=112197#c49 and
https://bugs.gentoo.org/show_bug.cgi?id=112197#c53
From http://forums.truecrypt.org/viewtopic.php?t=2776 (required registration):
finally I found that in kernel 2.6.17-rcX the dm-remove-sector-format.patch has
slammed and smashed this define.
from "http://kernel.org/pub/linux/kernel/v2.6/testing/ChangeLog-2.6.17-rc1":
commit 4ee218cd67b385759993a6c840ea45f0ee0a8b30
Author: Andrew Morton <akpm@osdl.org>
Date: Mon Mar 27 01:17:48 2006 -0800
[PATCH] dm: remove SECTOR_FORMAT
We don't know what type sector_t has. Sometimes it's unsigned long, sometimes
it's unsigned long long. For example on ppc64 it's unsigned long with
CONFIG_LBD=n and on x86_64 it's unsigned long long with CONFIG_LBD=n.
The way to handle all of this is to always use unsigned long long and to
always typecast the sector_t when printing it.
Acked-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
*sigh* So Kernel-2.6.17-x is incompatible with truecrypt. So don't use that
kernel or undo that patch.
http://bugs.gentoo.org/show_bug.cgi?id=112197#c61 Shows the undo.
./Linux/Kernel/Dm-target.c:164: if (sscanf (argv[ARG_SEC], SECTOR_FORMAT,
&tc->start) != 1)
./Linux/Kernel/Dm-target.c:227: if (sscanf (argv[ARG_RO_START], SECTOR_FORMAT,
&tc->read_only_start) != 1)
./Linux/Kernel/Dm-target.c:234: if (sscanf (argv[ARG_RO_END], SECTOR_FORMAT,
&tc->read_only_end) != 1)
./Linux/Kernel/Dm-target.c:378: trace (1, "end: sc=" SECTOR_FORMAT " fl=%ld
rw=%ld sz=%d ix=%hd vc=%hd dn=%d er=%d\n",
./Linux/Kernel/Dm-target.c:423: trace (1, "map: sc=" SECTOR_FORMAT " fl=%ld
rw=%ld sz=%d ix=%hd vc=%hd\n",
./Linux/Kernel/Dm-target.c:550: trace (3, "generic_make_request (rw=%ld sc="
SECTOR_FORMAT ")\n", bion->bi_rw, bion->bi_sector);
./Linux/Kernel/Dm-target.c:572: snprintf (result, maxlen, "%d
%d 0 0 %s " SECTOR_FORMAT " " SECTOR_FORMAT " " SECTOR_FORMAT " %Ld %Ld %d %s",
I'll fix this shortly.
(In reply to comment #3)
> Created an attachment (id=88509) [edit] [details]
> truecrypt-4.2-nosectorformat.patch
>
> '%uL should be %Lu in patch' opps
>
Great. It compiles smoothly and seems to work without problems (~x86,
2.6.17-rc3).
Great - tell me if there are any problems.