So there is no difference and we need a patch for rlimit. 0.9.28.3 is not show for compatibility reasons.
Printable View
So there is no difference and we need a patch for rlimit. 0.9.28.3 is not show for compatibility reasons.
The following code is from uClibc-0.9.28/libc/sysdeps/linux/common/setrlimit.c
that explaing why you get 1GB FSIZE limit. RLIM_INFINITY is defined as 0x7fffffffPHP Code:
/* vi: set sw=4 ts=4: */
/*
* setrlimit() for uClibc
*
* Copyright (C) 2000-2004 by Erik Andersen <andersen@codepoet.org>
*
* GNU Library General Public License (LGPL) version 2 or later.
*/
#include "syscalls.h"
#ifndef __NR_ugetrlimit
/* Only wrap setrlimit if the new ugetrlimit is not present */
#define __NR___setrlimit __NR_setrlimit
#include <unistd.h>
#include <sys/resource.h>
#define RMIN(x, y) ((x) < (y) ? (x) : (y))
_syscall2(int, __setrlimit, int, resource, const struct rlimit *, rlim);
int setrlimit(__rlimit_resource_t resource, const struct rlimit *rlimits)
{
struct rlimit rlimits_small;
/* We might have to correct the limits values. Since the old values
* were signed the new values might be too large. */
rlimits_small.rlim_cur = RMIN((unsigned long int) rlimits->rlim_cur,
RLIM_INFINITY >> 1);
rlimits_small.rlim_max = RMIN((unsigned long int) rlimits->rlim_max,
RLIM_INFINITY >> 1);
return (__setrlimit(resource, &rlimits_small));
}
#undef RMIN
#else /* We don't need to wrap setrlimit */
#include <unistd.h>
struct rlimit;
_syscall2(int, setrlimit, unsigned int, resource,
const struct rlimit *, rlim);
#endif
. Shifting it one bit to the right produces what we get when issuing kernel syscall2. So everything looks OK. See newer version http://www.uclibc.org/cgi-bin/viewcv...21&view=markup
I suggest to fix amule code to mask SIGXFSZ signal or undefine calls to resource limits.
this seems to be the complete solution for amuleQuote:
I suggest to fix amule code to mask SIGXFSZ signal
this is close to my initial suggestion, but we observe some strange behavior (in my earlier posts) either due to compile or runtime environment.Quote:
or undefine calls to resource limits.
However, first of all, I believe that this is a bug in uclibc. It affects any mipsel application which uses setrlimit (e.g. mysql). It affects also any similar application in some other architectures. So, it should be reported to uclibc people.
In principle, this >>1 seems to me to be useless at least in our case. If we still accept that such situation might somehow happen, may be this will be enough (instead of >>1):
On the other hand:PHP Code:
if ((unsigned long int)(rlimits->rlim_max > RLIM_INFINITY))
rlimits->rlim_max = RLIM_INFINITY;
if ((unsigned long int)(rlimits->rlim_cur > RLIM_INFINITY))
rlimits->rlim_cur = RLIM_INFINITY;
I should admit --- I have no idea how to change the toolchain :)
Russian saying says: don't touch an old shit and it will not smell :)
What to choose?
Due to the nature of my ISP, I have always LOW ID and Kad disconnected using ipkg version of amule. I need to compile a MODded version of amule (the same I use with success on my PC).
I've found here http://www.adunanza.net/download.php?view.80 sources for this version.
Can someone please help me with a step by step guide on how-to compile that source code to work on my Asus WL-500gP with latest Oleg's firmware and ipkg-opt installed ?
Thanks, Max
http://trac.nslu2-linux.org/optware/changeset/6017 adds AdunanzA patches to amule.
Still waiting for 1GB limit solution. Any progress on that?
hi oleo!Quote:
Still waiting for 1GB limit solution. Any progress on that?
unfortunately my skills are not enough for that. I even don't understand what's the difference between your and my builds (and where these new 700Mb could come from). I placed working amuled binary without 1Gb limit in the Russian thread (built using the patch supplied by me above).
http://wl500g.info/showpost.php?p=52214&postcount=25
It works fine for me for a month already, and dimonb confirmed on my request that it is working correctly.
Probably your suggestion is the best, because it will harm as minimum of other things as possible. However, again both modifying of the toolchain, and "to mask SIGXFSZ" are out of my experience. So, actually, the hope is on you. :)
Yesterday ipkg-opt upgraded my amuled from 2.1.3-7 to 2.1.3-8.
What's changed ?
Thanks, Max
-8 adds AdunanzA patches to amule
Thanks Oleg for aMule Adunanza compile, now I have hundreds of Kad nodes available, but I suppose you have to move back to -7, because AdunanzA is a modded version dedicated to italian Fastweb ISP.
It works great for me but I suppose for anyone else.
The only problem with this version is with Kad connections, it appear always as firewalled, even if I setup my router to forward both TCP and UDP aMule's ports to the router LAN IP address (192.168.1.250 in my case).
I'm trying to compile AdunanzA by myself, but I'm in trouble compiling toolchain (take a look please to my post http://www.wl500g.info/showthread.php?t=9264).
Max
I have not understood one what, the file > 1Gb can be unloaded?
Current version of amuled (-6, -7, -8?) crashes when attempting to load file chunks located above 1Gb limit (-6) (possibly 700 Mb in -7). The temporary solution is available: install amule through ipkg and replace the amuled binary with my one (see my previous post).
really? I've applied patch that You provided. See http://trac.nslu2-linux.org/optware/...c-mipsel.patch
I know, however my build works and your one no, sorry :)
I have not done any other changes in my build.
I have no idea what the difference is between our build systems. :(