Thread (15 messages) 15 messages, 5 authors, 2012-11-14

Re: [arc-linux-dev] Re: UAPI for new arches (was Re: [GIT PULL] User API Disintegrate: Preparatory patches)

From: Vineet Gupta <hidden>
Date: 2012-11-12 10:58:17
Also in: lkml

On Friday 09 November 2012 04:49 AM, David Howells wrote:
Vineet Gupta [off-list ref] wrote:
quoted
While I'd done some of the prep work in my code such as splitting __KERNEL__
&& __ASSEMBLY__ into two separate lines, majority of orig headers didn't
have #ifdef __KERNEL__ guard despite the code not being meant for user-space
ABI. Is that fundamental to UAPI split scripting
Yes.  My scripts work purely along __KERNEL__ lines.  If there are no
__KERNEL__ markers and the header is marked for export, it is simply moved.
Understood.
quoted
because it seems to be causing setup.h to be in uapi despite seemingly being
kernel internal only.
Check also include/uapi/asm-generic/Kbuild.asm.  That exports setup.h, whether
you think it should be exported or not.
Correct. And if there's nothing to export in there the script will not
generate the empty uapi sibling.
quoted
Per you email from last week, When I ran the disintergrate-one.pl script
myself I saw a whole bunch of empty UAPI files being generated with
references in orig header.  I'm not sure what I'm doing wrong.
Can you give an example of such a header?
tlb.h - despite having __KERNEL__ guard in orig file. Here's how I did it.

1. In my orig tree, I created arch/arc/include/uapi/asm/Kbuild, with
following 2 lines

# UAPI Header export list
include include/uapi/asm-generic/Kbuild.asm

2.  ./disintegrate-one.pl arch/arc/include/asm/tlb.h
arch/arc/include/uapi/asm/tlb.h

This generates a empty uapi/asm/tlb.h, a reference to it in asm/tlb.h
and is also exported from Kbuild.asm - all 3 of which are wrong.

But now that I think about it - I was wrong to call this script for
all/any arch headers. It should be done only for the ones in
include/uapi/asm-generic/Kbuild.asm or any specific ones that arch wants
to export (cachectl.h for our case).
quoted
For any ABI changes to headers per review of the new port on list
(e.g. don't export pt_regs) would mean moving the code manually from uapi to
orig header - right. And if the file becomes empty just nuke it completely.
You can't necessarily remove a UAPI header completely.  Userspace may depend
on its existence, even if it gets no content from there.
quoted
How do you reckon we go about fixing these. I don't want to bother you
multiple times hence it would be best if I could reproduce this at my end.
The best advice I can give you without more specific examples is to compare
what's in your arch's headers to those of, say, hexagon or arm64.  Those are
recent additions and should be pretty clean as to what they contain.

David
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help