Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[PATCH API-NEXT v29] restructure headers for ABI-compat/platform-optimized modes #250

Closed
wants to merge 58 commits into from

Conversation

lumag
Copy link

@lumag lumag commented Oct 22, 2017

This patch serie is based on discussions during SFO17.

My main goals were:

  • providing full set of ABI headers to be used by other implementations
  • restructuring existing headers, to provide cleaner separation between
    ABI-compat and non-ABI-compat headers
  • allow headers to be selected via compiler flags, rather than by
    preprocessor
  • install only necessary (used) headers instead of a mixture of ABI and
    non-ABI headers

With this patchset these goals are mostly accomplished. Remaining
headers to be reworked:

  • align.h: gcc/platform-specific implementation

  • cpu.h: platform-specific code, needs additional discussion

  • visibility_begin.h/_end.h: gcc specific, controls visibility of symbols. Used by both ODP and ODPH.

@muvarov muvarov changed the title WIP: restructure headers for ABI-compat/platform-optimized modes [PATCH API-NEXT v1] WIP: restructure headers for ABI-compat/platform-optimized modes Oct 22, 2017
@muvarov muvarov changed the title [PATCH API-NEXT v1] WIP: restructure headers for ABI-compat/platform-optimized modes [PATCH API-NEXT v2] WIP: restructure headers for ABI-compat/platform-optimized modes Oct 22, 2017
@muvarov muvarov changed the title [PATCH API-NEXT v2] WIP: restructure headers for ABI-compat/platform-optimized modes [PATCH API-NEXT v3] WIP: restructure headers for ABI-compat/platform-optimized modes Oct 23, 2017
@muvarov muvarov changed the title [PATCH API-NEXT v3] WIP: restructure headers for ABI-compat/platform-optimized modes [PATCH API-NEXT v4] WIP: restructure headers for ABI-compat/platform-optimized modes Oct 23, 2017
@muvarov muvarov changed the title [PATCH API-NEXT v4] WIP: restructure headers for ABI-compat/platform-optimized modes [PATCH API-NEXT v5] WIP: restructure headers for ABI-compat/platform-optimized modes Oct 23, 2017
@muvarov muvarov changed the title [PATCH API-NEXT v5] WIP: restructure headers for ABI-compat/platform-optimized modes [PATCH API-NEXT v6] WIP: restructure headers for ABI-compat/platform-optimized modes Oct 23, 2017
@muvarov muvarov changed the title [PATCH API-NEXT v6] WIP: restructure headers for ABI-compat/platform-optimized modes [PATCH API-NEXT v7] WIP: restructure headers for ABI-compat/platform-optimized modes Oct 23, 2017
@muvarov muvarov changed the title [PATCH API-NEXT v27] restructure headers for ABI-compat/platform-optimized modes [PATCH API-NEXT v28] restructure headers for ABI-compat/platform-optimized modes Jan 16, 2018
@lumag
Copy link
Author

lumag commented Jan 16, 2018

@Bill-Fischofer-Linaro done

Dmitry Eremin-Solenikov added 12 commits January 17, 2018 16:52
Signed-off-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org>
_ODP_CACHE_LINE_SIZE is only used to define ODP_CACHE_LINE_SIZE. Drop
interim define and make cpu.h directly define ODP_CACHE_LINE_SIZE.

Signed-off-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org>
Minor cleanup of API headers:
 - remove empty Doxygen groups
 - rename guarding defines to follow ODP_API_FOO_H_ pattern

Signed-off-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org>
Now that api header files consist only of generic includes, move them to
generic locations, so that they can be reused by implementations.

Signed-off-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org>
Several files consist only (or mostly) of functions compiled only if
ODP is compiled in ABI compatibility mode. Instead of having an ifdef
inside, guard them with if ODP_ABI_COMPAT condition in Makefile.am

Signed-off-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org>
Split away inclusion of API implementation to the files selected by
Automake.

Signed-off-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org>
Replace static_inline.h header with unconditional defines of _ODP_INLINE
macro (either to 'static inline' or to empty value) depending on the
compilation place.

Signed-off-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org>
There is no point in installing inline headers in ABI-compat mode
anymore. They are not included by any other header.

Signed-off-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org>
With static_inline.h gone, there is no need to
AC_SUBST([ODP_ABI_COMPAT]). Drop it from configure.ac.

Signed-off-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org>
compiler.h header contains one internal definition used only in
platform-optimized headers. This definition, being internal, is not a
part of the specification, so let's merge it into linux-gen plat file
and drop compiler.h headers.

Signed-off-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org>
Provide formal description of files being part of ODP specification,
platform-specific headers, substituting parts of ODP specification and
additional headers supplementing ODP specification.

Signed-off-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org>
There was an idea that platform might override visibility headers in
platform-specific way. For the sake of providing full set of headers for
ABI-compatibile case, move those headers to include/ dir. Platform can
still override those headers when compiling in non-ABI-compatibile mode.

Signed-off-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org>
@lumag
Copy link
Author

lumag commented Jan 17, 2018

Fixed two checkpatch issues. Other seem to be invalid.

@lumag
Copy link
Author

lumag commented Jan 17, 2018

@muvarov @psavol can we merge this PR?

@muvarov muvarov changed the title [PATCH API-NEXT v28] restructure headers for ABI-compat/platform-optimized modes [PATCH API-NEXT v29] restructure headers for ABI-compat/platform-optimized modes Jan 17, 2018
@muvarov
Copy link
Contributor

muvarov commented Jan 17, 2018

I think it can go in to master I think. @psavol as I remember you were ok with most of the changes.

@lumag
Copy link
Author

lumag commented Jan 17, 2018

@muvarov I'll create a separate PR, rebasing this on top of master

@lumag
Copy link
Author

lumag commented Jan 17, 2018

@muvarov created #401

@muvarov
Copy link
Contributor

muvarov commented Jan 18, 2018

I think that can be closed as #401 merged.

@muvarov muvarov closed this Jan 18, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants