Re: [PATCH 1/6] Suppress A.OUT library support if !CONFIG_BINFMT_AOUT [try #5]

From: Andi Kleen
Date: Sun Nov 11 2007 - 10:53:06 EST



> My thoughts go more into the direction that we have hundreds of similar
> cases where e.g. a VFS function might currently only by used by OCFS2
> and therefore be dead code for most users, and the only maintainable
> solution will be to solve these at the compiler and/or linker level.

-ffunction-sections can mostly do it, but only for non modular kernels

One problem is that EXPORT_SYMBOL always creates a reference to the function
even when nothing uses it.

We would need a weak EXPORT_SYMBOL and some way to check references
over main kernel and modules. I suppose it could be done as part of modpost
and then generating a custom linker script that only includes the function
sections referenced by anybody. But to make this work it would require
putting all the EXPORT_SYMBOLs into own sections too, but I suppose
that would be possible.

In the past we had trouble that the explicit linker scripts mentioning every
function section made the linker very slow, but perhaps that's fixed now.

The whole thing would likely made a lot of out of tree modules unhappy
though. Distribution kernels might need to turn it off generally because of
that.

The question is if it would be still have a large enough user base without the
distribution kernels. If it would be only used by a few users I don't think
the maintenance overhead would be worth it.

> Andi scheduled it for removal, and I don't know whether he already has a
> patch.

I don't have a patch yet, but I can submit one for -mm* if it's helpful.
It's not very difficult.

-Andi
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/