Configure tsocks with a simple heuristic.
Consider the proxy has to be in a 'local' network. It means it is directly
reachable by the local machine, even if the local machine has to hop through
one or more gates to reach the proxy (often the case in enterprise networks
where class A 10.0.0.0/8 is in fact sub-divided into smaller networks, each
one of them in a different location, eg. 10.1.0.0/16 in a place, while
10.2.0.0/16 would be on the other side of the world). Not being in the same
subnet does not mean the proxy is not available.
So we will build a mask with at most high bits set, which defines a network
that has both the local machine and the proxy. Because a machine may have
more than one interface, build a mask for each of them, removing 127.0.0.1
which is added automagically by tsocks, and removing duplicate masks.
If all of this does not work, then it means the local machine can NOT in fact
reach the proxy, which in turn means the user mis-configured something (most
probably a typo...).
/trunk/scripts/crosstool.sh | 61 52 9 0 +++++++++++++++++++++++++++++++++++++++++++--------
1 file changed, 52 insertions(+), 9 deletions(-)
1 Reconstructed from http://lists.arm.linux.org.uk/pipermail/linux-arm-kernel/2003-December/018647.html
2 See also http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=1540
4 Message-ID: <DDA001.8070502@de.bosch.com>
5 Subject: Help cross compiling the kernel for arm.
6 From: dirk.behme at de.bosch.com
11 > I am having problems cross compiling the kernel for arm.
13 > This is the error message I get:
15 > blkpg.c: In function `blk_ioctl':
16 > blkpg.c:252: error: asm-specifier for variable `__r1' conflicts with asm clobber list
17 > blkpg.c:252: confused by earlier errors, bailing out make[3]: *** [blkpg.o] Error 1
18 > make[3]: Leaving directory `/root/toolchain/kernel-arm/linux-2.4.21/drivers/block'
19 > make[2]: *** [first_rule] Error 2
20 > make[2]: Leaving directory `/root/toolchain/kernel-arm/linux-2.4.21/drivers/block'
21 > make[1]: *** [_subdir_block] Error 2
22 > make[1]: Leaving directory `/root/toolchain/kernel-arm/linux-2.4.21/drivers'
23 > make: *** [_dir_drivers] Error 2
25 > These are the toolchain versions I am using:
26 > host=i686-pc-linux-gnu
27 > binutils_version=2.14
30 > kernel_version=2.4.21
31 > and applied the kernel patch for arm. 2.4.21-rmk1.
33 > I have also seen references to this bug in ARM linux
34 > Developer. Patch Number = 1540. But this patch is
35 > classified as discarded.
37 You need something like 1540 to compile 2.4.21 with gcc 3.3.2. 1540 was
38 discarded because of AFLAGS change.
43 -------------- next part --------------
44 --- linux/arch/arm/lib/getuser.S.orig Mon Nov 17 07:41:51 2003
45 +++ linux/arch/arm/lib/getuser.S Mon Nov 17 07:43:16 2003
48 * Inputs: r0 contains the address
49 * Outputs: r0 is the error code
50 - * r1, r2 contains the zero-extended value
51 + * r1, ip contains the zero-extended value
54 * No other registers must be altered. (see include/asm-arm/uaccess.h
55 @@ -42,14 +42,14 @@ __get_user_1:
61 - ldr r2, [r2, #TSK_ADDR_LIMIT]
66 + ldr ip, [ip, #TSK_ADDR_LIMIT]
69 2: ldrlsbt r1, [r0], #1
71 - orrls r1, r1, r2, lsl #8
73 + orrls r1, r1, ip, lsl #8
77 @@ -68,20 +68,20 @@ __get_user_4:
83 - ldr r2, [r2, #TSK_ADDR_LIMIT]
88 + ldr ip, [ip, #TSK_ADDR_LIMIT]
91 5: ldrlst r1, [r0], #4
105 --- linux/arch/arm/lib/putuser.S.orig Mon Nov 17 07:41:57 2003
106 +++ linux/arch/arm/lib/putuser.S Mon Nov 17 07:42:26 2003
110 * Inputs: r0 contains the address
111 - * r1, r2 contains the value
112 + * r1, ip contains the value
113 * Outputs: r0 is the error code
120 - bic r2, sp, #0x1f00
121 - bic r2, r2, #0x00ff
122 - ldr r2, [r2, #TSK_ADDR_LIMIT]
125 + bic ip, sp, #0x1f00
126 + bic ip, ip, #0x00ff
127 + ldr ip, [ip, #TSK_ADDR_LIMIT]
133 @@ -42,11 +42,11 @@ __put_user_1:
137 - bic r2, sp, #0x1f00
138 - bic r2, r2, #0x00ff
139 - ldr r2, [r2, #TSK_ADDR_LIMIT]
142 + bic ip, sp, #0x1f00
143 + bic ip, ip, #0x00ff
144 + ldr ip, [ip, #TSK_ADDR_LIMIT]
147 2: strlsbt r1, [r0], #1
150 @@ -56,11 +56,11 @@ __put_user_2:
154 - bic r2, sp, #0x1f00
155 - bic r2, r2, #0x00ff
156 - ldr r2, [r2, #TSK_ADDR_LIMIT]
159 + bic ip, sp, #0x1f00
160 + bic ip, ip, #0x00ff
161 + ldr ip, [ip, #TSK_ADDR_LIMIT]
167 @@ -74,7 +74,7 @@ __put_user_8:
170 5: strlst r1, [r0], #4
176 --- linux/include/asm-arm/uaccess.h.orig Mon Nov 17 07:41:04 2003
177 +++ linux/include/asm-arm/uaccess.h Mon Nov 17 07:41:37 2003
178 @@ -86,7 +86,7 @@ extern int __get_user_bad(void);
179 __get_user_x(__r1, __p, __e, 1, "lr"); \
182 - __get_user_x(__r1, __p, __e, 2, "r2", "lr"); \
183 + __get_user_x(__r1, __p, __e, 2, "ip", "lr"); \
186 __get_user_x(__r1, __p, __e, 4, "lr"); \
187 @@ -122,13 +122,13 @@ extern int __put_user_bad(void);
188 register int __e asm("r0"); \
189 switch (sizeof(*(p))) { \
191 - __put_user_x(__r1, __p, __e, 1, "r2", "lr"); \
192 + __put_user_x(__r1, __p, __e, 1, "ip", "lr"); \
195 - __put_user_x(__r1, __p, __e, 2, "r2", "lr"); \
196 + __put_user_x(__r1, __p, __e, 2, "ip", "lr"); \
199 - __put_user_x(__r1, __p, __e, 4, "r2", "lr"); \
200 + __put_user_x(__r1, __p, __e, 4, "ip", "lr"); \
203 __put_user_x(__r1, __p, __e, 8, "ip", "lr"); \