Re: [RFC/PATCH 0/4] compilation fixes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





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


[Index of Archives]     [Linux Filesystem Development]     [Linux Ext4]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux