On Tue, 16 Oct 2012, Ian Kent wrote:
On Tue, 2012-10-16 at 16:24 +1300, Chris Packham wrote:
OK So I should probably explain what I am doing and why I am doing it.
We have embedded targets running Linux+uclibc. We use autofs to take
card of managing NFS, SD and USB file system mounts. We are currently
running Linux 2.6.38.2, uClibc 0.9.30.1 and autofs 4.1.4.
I'm in the process of bring up a new board with a new CPU for which I
need to upgrade kernel versions. Currently the new board is running
Linux 3.4.7 but eventually we plan to be running 3.6.x on all our
products.
My actual problem is that automount is crashing at startup. My initial
thought was that it's probably something to do with running an old-ish
automount against a new-ish kernel. So I thought what the heck I may as
well try out the latest version. Which is when I find that we've done
some patches on 4.1.4 to get it compiling in our environment most of
which won't apply to 5.0.7.
With the following series of patches I've got autofs-master compiling
but unfortunately I still get the crash so I need to recompile with
debug symbols to track down that crash.
Remember to get the gdb backtrace of all threads, aka. "gdb> thr a a bt"
and post that.
Actually I need to retract that statement. autofs-4.1.4 is crashing,
autofs-5.0.7 is exiting because it doesn't recognise some of the arguments
my startup scripts are providing it. I had a rouge core file still on my
target so I incorrectly assumed autofs-5.0.7 was crashing. I'll still try
to figure out the 4.1.4 crash.
In the interim here's the patches I've done so far. They probably still
need some polishing/testing before they are ready for use. In
particular I've had some trouble compiling on my host (ubuntu-12.04)
possibly because of my patches or possibly because I'm missing some -dev
packages.
Yeah, I'd like to spend a bit of time working on these before committing
them.
Chris Packham (4):
At first glance ...
lib/defaults: use WITH_LDAP conditional around LDAP types
Looks like we should move some functions and do a block #if ... #endif.
I know it's good to keep the conditional macros scope small for
readability but you can end up with lots of them so I prefer to minimize
the number of them.
As far as being ugly, this is nothing compared to some code I've worked
on. So far autofs is still fairly clean wrt. conditionals like this.
Most of them are already grouped so it wouldn't be an issue to have a big
#if ... #endif block. I can move the one or two things that aren't in the
existing group.
make yellow pages support optional
Mmm .. will need to check that.
We actually used to have something running here using yp/nis before we
switched to cifs/smb. I'll have a talk with the guy that set that up to
see if he can help test it.
workaround missing GNU versionsort extension
Yes, Linux autofs is meant for Linux based OS but that's no reason to
not make it easier for environments like embedded ones that don't have
certain features.
Another alternative might be to include a compatibility layer that
provides a versionsort implementation if the C library doesn't.
modules/replicated: use sin6_addr.s6_addr32
Umm ... it must be there, I must have seen it and it must compile
because, well, I compile it all the time. Perhaps this is another
glibc'ism. I'm happy to change as long as autofs compiles everywhere we
want it to.
Found it in /usr/include/netinet/in.h. uclibc 0.9.30.1 defines the union
without the leading underscores. Looking at the upstream uclibc that has
been fixed. All versions of that definition I found provide the s6_addr32
macro so using that should be safe. I assume the s6_addr is some kind of
standard but I can't find a reference to back that up.
Makefile.conf.in | 3 ++
configure | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++
configure.in | 15 ++++++++++
include/config.h.in | 6 ++++
lib/defaults.c | 18 ++++++++++++
lib/rpc_subs.c | 2 ++
modules/Makefile | 9 ++++--
modules/lookup_dir.c | 5 ++++
modules/replicated.c | 2 +-
9 files changed, 135 insertions(+), 3 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe autofs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html