Home
last modified time | relevance | path

Searched hist:"1 d0137909cd290d677dbca28a6953e6505c9d054" (Results 1 – 25 of 26) sorted by relevance

12

/libCEED/gallery/
H A Dceed-gallery-list.h1d0137909cd290d677dbca28a6953e6505c9d054 Mon Dec 14 19:10:44 UTC 2020 Jed Brown <jed@jedbrown.org> Add static library (libceed.a) [resolve #670]

We no longer use __attribute__((constructor)) to register backends and
gallery implementations because we can't ensure that the symbols are
linked into applications that link the static library. We've switched to
creating CeedRegisterAll() and CeedQFunctionRegisterAll(), which are
called automatically by the library, and call weak symbols to register
all the backend/gallery implementations. This strategy was partly
motivated by not wanting to have preprocessor macros describing what is
available, and the associated need to recompile rather than just relink
when those macros change.

So we now have backends/ceed-backend-list.h that declares all the
backends wrapped in a macro. It is included by
backends/ceed-backend-weak.c to create weak definitions of all the
backends. In the makefile, we sort so this comes last when linking a
shared or static library, and thus these weak symbols will only be
picked up if they were not defined by the actual backend source files.
The same header is included (with different macro wrapping) in
interface/ceed-register.c, where CeedRegisterAll() is defined.

To add a new backend, one must do essentially the same registration
strategy as in the past, plus add one line to the common
ceed-backend-list.h.
/libCEED/
H A Dceed.pc.templatediff 1d0137909cd290d677dbca28a6953e6505c9d054 Mon Dec 14 19:10:44 UTC 2020 Jed Brown <jed@jedbrown.org> Add static library (libceed.a) [resolve #670]

We no longer use __attribute__((constructor)) to register backends and
gallery implementations because we can't ensure that the symbols are
linked into applications that link the static library. We've switched to
creating CeedRegisterAll() and CeedQFunctionRegisterAll(), which are
called automatically by the library, and call weak symbols to register
all the backend/gallery implementations. This strategy was partly
motivated by not wanting to have preprocessor macros describing what is
available, and the associated need to recompile rather than just relink
when those macros change.

So we now have backends/ceed-backend-list.h that declares all the
backends wrapped in a macro. It is included by
backends/ceed-backend-weak.c to create weak definitions of all the
backends. In the makefile, we sort so this comes last when linking a
shared or static library, and thus these weak symbols will only be
picked up if they were not defined by the actual backend source files.
The same header is included (with different macro wrapping) in
interface/ceed-register.c, where CeedRegisterAll() is defined.

To add a new backend, one must do essentially the same registration
strategy as in the past, plus add one line to the common
ceed-backend-list.h.
/libCEED/backends/
H A Dceed-backend-list.h1d0137909cd290d677dbca28a6953e6505c9d054 Mon Dec 14 19:10:44 UTC 2020 Jed Brown <jed@jedbrown.org> Add static library (libceed.a) [resolve #670]

We no longer use __attribute__((constructor)) to register backends and
gallery implementations because we can't ensure that the symbols are
linked into applications that link the static library. We've switched to
creating CeedRegisterAll() and CeedQFunctionRegisterAll(), which are
called automatically by the library, and call weak symbols to register
all the backend/gallery implementations. This strategy was partly
motivated by not wanting to have preprocessor macros describing what is
available, and the associated need to recompile rather than just relink
when those macros change.

So we now have backends/ceed-backend-list.h that declares all the
backends wrapped in a macro. It is included by
backends/ceed-backend-weak.c to create weak definitions of all the
backends. In the makefile, we sort so this comes last when linking a
shared or static library, and thus these weak symbols will only be
picked up if they were not defined by the actual backend source files.
The same header is included (with different macro wrapping) in
interface/ceed-register.c, where CeedRegisterAll() is defined.

To add a new backend, one must do essentially the same registration
strategy as in the past, plus add one line to the common
ceed-backend-list.h.
/libCEED/gallery/scale/
H A Dceed-scale.cdiff 1d0137909cd290d677dbca28a6953e6505c9d054 Mon Dec 14 19:10:44 UTC 2020 Jed Brown <jed@jedbrown.org> Add static library (libceed.a) [resolve #670]

We no longer use __attribute__((constructor)) to register backends and
gallery implementations because we can't ensure that the symbols are
linked into applications that link the static library. We've switched to
creating CeedRegisterAll() and CeedQFunctionRegisterAll(), which are
called automatically by the library, and call weak symbols to register
all the backend/gallery implementations. This strategy was partly
motivated by not wanting to have preprocessor macros describing what is
available, and the associated need to recompile rather than just relink
when those macros change.

So we now have backends/ceed-backend-list.h that declares all the
backends wrapped in a macro. It is included by
backends/ceed-backend-weak.c to create weak definitions of all the
backends. In the makefile, we sort so this comes last when linking a
shared or static library, and thus these weak symbols will only be
picked up if they were not defined by the actual backend source files.
The same header is included (with different macro wrapping) in
interface/ceed-register.c, where CeedRegisterAll() is defined.

To add a new backend, one must do essentially the same registration
strategy as in the past, plus add one line to the common
ceed-backend-list.h.
/libCEED/backends/memcheck/
H A Dceed-memcheck-serial.cdiff 1d0137909cd290d677dbca28a6953e6505c9d054 Mon Dec 14 19:10:44 UTC 2020 Jed Brown <jed@jedbrown.org> Add static library (libceed.a) [resolve #670]

We no longer use __attribute__((constructor)) to register backends and
gallery implementations because we can't ensure that the symbols are
linked into applications that link the static library. We've switched to
creating CeedRegisterAll() and CeedQFunctionRegisterAll(), which are
called automatically by the library, and call weak symbols to register
all the backend/gallery implementations. This strategy was partly
motivated by not wanting to have preprocessor macros describing what is
available, and the associated need to recompile rather than just relink
when those macros change.

So we now have backends/ceed-backend-list.h that declares all the
backends wrapped in a macro. It is included by
backends/ceed-backend-weak.c to create weak definitions of all the
backends. In the makefile, we sort so this comes last when linking a
shared or static library, and thus these weak symbols will only be
picked up if they were not defined by the actual backend source files.
The same header is included (with different macro wrapping) in
interface/ceed-register.c, where CeedRegisterAll() is defined.

To add a new backend, one must do essentially the same registration
strategy as in the past, plus add one line to the common
ceed-backend-list.h.
H A Dceed-memcheck-blocked.cdiff 1d0137909cd290d677dbca28a6953e6505c9d054 Mon Dec 14 19:10:44 UTC 2020 Jed Brown <jed@jedbrown.org> Add static library (libceed.a) [resolve #670]

We no longer use __attribute__((constructor)) to register backends and
gallery implementations because we can't ensure that the symbols are
linked into applications that link the static library. We've switched to
creating CeedRegisterAll() and CeedQFunctionRegisterAll(), which are
called automatically by the library, and call weak symbols to register
all the backend/gallery implementations. This strategy was partly
motivated by not wanting to have preprocessor macros describing what is
available, and the associated need to recompile rather than just relink
when those macros change.

So we now have backends/ceed-backend-list.h that declares all the
backends wrapped in a macro. It is included by
backends/ceed-backend-weak.c to create weak definitions of all the
backends. In the makefile, we sort so this comes last when linking a
shared or static library, and thus these weak symbols will only be
picked up if they were not defined by the actual backend source files.
The same header is included (with different macro wrapping) in
interface/ceed-register.c, where CeedRegisterAll() is defined.

To add a new backend, one must do essentially the same registration
strategy as in the past, plus add one line to the common
ceed-backend-list.h.
/libCEED/gallery/identity/
H A Dceed-identity.cdiff 1d0137909cd290d677dbca28a6953e6505c9d054 Mon Dec 14 19:10:44 UTC 2020 Jed Brown <jed@jedbrown.org> Add static library (libceed.a) [resolve #670]

We no longer use __attribute__((constructor)) to register backends and
gallery implementations because we can't ensure that the symbols are
linked into applications that link the static library. We've switched to
creating CeedRegisterAll() and CeedQFunctionRegisterAll(), which are
called automatically by the library, and call weak symbols to register
all the backend/gallery implementations. This strategy was partly
motivated by not wanting to have preprocessor macros describing what is
available, and the associated need to recompile rather than just relink
when those macros change.

So we now have backends/ceed-backend-list.h that declares all the
backends wrapped in a macro. It is included by
backends/ceed-backend-weak.c to create weak definitions of all the
backends. In the makefile, we sort so this comes last when linking a
shared or static library, and thus these weak symbols will only be
picked up if they were not defined by the actual backend source files.
The same header is included (with different macro wrapping) in
interface/ceed-register.c, where CeedRegisterAll() is defined.

To add a new backend, one must do essentially the same registration
strategy as in the past, plus add one line to the common
ceed-backend-list.h.
/libCEED/backends/hip-shared/
H A Dceed-hip-shared.cdiff 1d0137909cd290d677dbca28a6953e6505c9d054 Mon Dec 14 19:10:44 UTC 2020 Jed Brown <jed@jedbrown.org> Add static library (libceed.a) [resolve #670]

We no longer use __attribute__((constructor)) to register backends and
gallery implementations because we can't ensure that the symbols are
linked into applications that link the static library. We've switched to
creating CeedRegisterAll() and CeedQFunctionRegisterAll(), which are
called automatically by the library, and call weak symbols to register
all the backend/gallery implementations. This strategy was partly
motivated by not wanting to have preprocessor macros describing what is
available, and the associated need to recompile rather than just relink
when those macros change.

So we now have backends/ceed-backend-list.h that declares all the
backends wrapped in a macro. It is included by
backends/ceed-backend-weak.c to create weak definitions of all the
backends. In the makefile, we sort so this comes last when linking a
shared or static library, and thus these weak symbols will only be
picked up if they were not defined by the actual backend source files.
The same header is included (with different macro wrapping) in
interface/ceed-register.c, where CeedRegisterAll() is defined.

To add a new backend, one must do essentially the same registration
strategy as in the past, plus add one line to the common
ceed-backend-list.h.
/libCEED/interface/
H A Dceed-register.c1d0137909cd290d677dbca28a6953e6505c9d054 Mon Dec 14 19:10:44 UTC 2020 Jed Brown <jed@jedbrown.org> Add static library (libceed.a) [resolve #670]

We no longer use __attribute__((constructor)) to register backends and
gallery implementations because we can't ensure that the symbols are
linked into applications that link the static library. We've switched to
creating CeedRegisterAll() and CeedQFunctionRegisterAll(), which are
called automatically by the library, and call weak symbols to register
all the backend/gallery implementations. This strategy was partly
motivated by not wanting to have preprocessor macros describing what is
available, and the associated need to recompile rather than just relink
when those macros change.

So we now have backends/ceed-backend-list.h that declares all the
backends wrapped in a macro. It is included by
backends/ceed-backend-weak.c to create weak definitions of all the
backends. In the makefile, we sort so this comes last when linking a
shared or static library, and thus these weak symbols will only be
picked up if they were not defined by the actual backend source files.
The same header is included (with different macro wrapping) in
interface/ceed-register.c, where CeedRegisterAll() is defined.

To add a new backend, one must do essentially the same registration
strategy as in the past, plus add one line to the common
ceed-backend-list.h.
H A Dceed-qfunction-register.c1d0137909cd290d677dbca28a6953e6505c9d054 Mon Dec 14 19:10:44 UTC 2020 Jed Brown <jed@jedbrown.org> Add static library (libceed.a) [resolve #670]

We no longer use __attribute__((constructor)) to register backends and
gallery implementations because we can't ensure that the symbols are
linked into applications that link the static library. We've switched to
creating CeedRegisterAll() and CeedQFunctionRegisterAll(), which are
called automatically by the library, and call weak symbols to register
all the backend/gallery implementations. This strategy was partly
motivated by not wanting to have preprocessor macros describing what is
available, and the associated need to recompile rather than just relink
when those macros change.

So we now have backends/ceed-backend-list.h that declares all the
backends wrapped in a macro. It is included by
backends/ceed-backend-weak.c to create weak definitions of all the
backends. In the makefile, we sort so this comes last when linking a
shared or static library, and thus these weak symbols will only be
picked up if they were not defined by the actual backend source files.
The same header is included (with different macro wrapping) in
interface/ceed-register.c, where CeedRegisterAll() is defined.

To add a new backend, one must do essentially the same registration
strategy as in the past, plus add one line to the common
ceed-backend-list.h.
H A Dceed-qfunction.cdiff 1d0137909cd290d677dbca28a6953e6505c9d054 Mon Dec 14 19:10:44 UTC 2020 Jed Brown <jed@jedbrown.org> Add static library (libceed.a) [resolve #670]

We no longer use __attribute__((constructor)) to register backends and
gallery implementations because we can't ensure that the symbols are
linked into applications that link the static library. We've switched to
creating CeedRegisterAll() and CeedQFunctionRegisterAll(), which are
called automatically by the library, and call weak symbols to register
all the backend/gallery implementations. This strategy was partly
motivated by not wanting to have preprocessor macros describing what is
available, and the associated need to recompile rather than just relink
when those macros change.

So we now have backends/ceed-backend-list.h that declares all the
backends wrapped in a macro. It is included by
backends/ceed-backend-weak.c to create weak definitions of all the
backends. In the makefile, we sort so this comes last when linking a
shared or static library, and thus these weak symbols will only be
picked up if they were not defined by the actual backend source files.
The same header is included (with different macro wrapping) in
interface/ceed-register.c, where CeedRegisterAll() is defined.

To add a new backend, one must do essentially the same registration
strategy as in the past, plus add one line to the common
ceed-backend-list.h.
H A Dceed.cdiff 1d0137909cd290d677dbca28a6953e6505c9d054 Mon Dec 14 19:10:44 UTC 2020 Jed Brown <jed@jedbrown.org> Add static library (libceed.a) [resolve #670]

We no longer use __attribute__((constructor)) to register backends and
gallery implementations because we can't ensure that the symbols are
linked into applications that link the static library. We've switched to
creating CeedRegisterAll() and CeedQFunctionRegisterAll(), which are
called automatically by the library, and call weak symbols to register
all the backend/gallery implementations. This strategy was partly
motivated by not wanting to have preprocessor macros describing what is
available, and the associated need to recompile rather than just relink
when those macros change.

So we now have backends/ceed-backend-list.h that declares all the
backends wrapped in a macro. It is included by
backends/ceed-backend-weak.c to create weak definitions of all the
backends. In the makefile, we sort so this comes last when linking a
shared or static library, and thus these weak symbols will only be
picked up if they were not defined by the actual backend source files.
The same header is included (with different macro wrapping) in
interface/ceed-register.c, where CeedRegisterAll() is defined.

To add a new backend, one must do essentially the same registration
strategy as in the past, plus add one line to the common
ceed-backend-list.h.
/libCEED/backends/magma/
H A Dceed-magma-det.cdiff 1d0137909cd290d677dbca28a6953e6505c9d054 Mon Dec 14 19:10:44 UTC 2020 Jed Brown <jed@jedbrown.org> Add static library (libceed.a) [resolve #670]

We no longer use __attribute__((constructor)) to register backends and
gallery implementations because we can't ensure that the symbols are
linked into applications that link the static library. We've switched to
creating CeedRegisterAll() and CeedQFunctionRegisterAll(), which are
called automatically by the library, and call weak symbols to register
all the backend/gallery implementations. This strategy was partly
motivated by not wanting to have preprocessor macros describing what is
available, and the associated need to recompile rather than just relink
when those macros change.

So we now have backends/ceed-backend-list.h that declares all the
backends wrapped in a macro. It is included by
backends/ceed-backend-weak.c to create weak definitions of all the
backends. In the makefile, we sort so this comes last when linking a
shared or static library, and thus these weak symbols will only be
picked up if they were not defined by the actual backend source files.
The same header is included (with different macro wrapping) in
interface/ceed-register.c, where CeedRegisterAll() is defined.

To add a new backend, one must do essentially the same registration
strategy as in the past, plus add one line to the common
ceed-backend-list.h.
H A Dceed-magma.cdiff 1d0137909cd290d677dbca28a6953e6505c9d054 Mon Dec 14 19:10:44 UTC 2020 Jed Brown <jed@jedbrown.org> Add static library (libceed.a) [resolve #670]

We no longer use __attribute__((constructor)) to register backends and
gallery implementations because we can't ensure that the symbols are
linked into applications that link the static library. We've switched to
creating CeedRegisterAll() and CeedQFunctionRegisterAll(), which are
called automatically by the library, and call weak symbols to register
all the backend/gallery implementations. This strategy was partly
motivated by not wanting to have preprocessor macros describing what is
available, and the associated need to recompile rather than just relink
when those macros change.

So we now have backends/ceed-backend-list.h that declares all the
backends wrapped in a macro. It is included by
backends/ceed-backend-weak.c to create weak definitions of all the
backends. In the makefile, we sort so this comes last when linking a
shared or static library, and thus these weak symbols will only be
picked up if they were not defined by the actual backend source files.
The same header is included (with different macro wrapping) in
interface/ceed-register.c, where CeedRegisterAll() is defined.

To add a new backend, one must do essentially the same registration
strategy as in the past, plus add one line to the common
ceed-backend-list.h.
/libCEED/backends/hip-gen/
H A Dceed-hip-gen.cdiff 1d0137909cd290d677dbca28a6953e6505c9d054 Mon Dec 14 19:10:44 UTC 2020 Jed Brown <jed@jedbrown.org> Add static library (libceed.a) [resolve #670]

We no longer use __attribute__((constructor)) to register backends and
gallery implementations because we can't ensure that the symbols are
linked into applications that link the static library. We've switched to
creating CeedRegisterAll() and CeedQFunctionRegisterAll(), which are
called automatically by the library, and call weak symbols to register
all the backend/gallery implementations. This strategy was partly
motivated by not wanting to have preprocessor macros describing what is
available, and the associated need to recompile rather than just relink
when those macros change.

So we now have backends/ceed-backend-list.h that declares all the
backends wrapped in a macro. It is included by
backends/ceed-backend-weak.c to create weak definitions of all the
backends. In the makefile, we sort so this comes last when linking a
shared or static library, and thus these weak symbols will only be
picked up if they were not defined by the actual backend source files.
The same header is included (with different macro wrapping) in
interface/ceed-register.c, where CeedRegisterAll() is defined.

To add a new backend, one must do essentially the same registration
strategy as in the past, plus add one line to the common
ceed-backend-list.h.
/libCEED/backends/opt/
H A Dceed-opt-serial.cdiff 1d0137909cd290d677dbca28a6953e6505c9d054 Mon Dec 14 19:10:44 UTC 2020 Jed Brown <jed@jedbrown.org> Add static library (libceed.a) [resolve #670]

We no longer use __attribute__((constructor)) to register backends and
gallery implementations because we can't ensure that the symbols are
linked into applications that link the static library. We've switched to
creating CeedRegisterAll() and CeedQFunctionRegisterAll(), which are
called automatically by the library, and call weak symbols to register
all the backend/gallery implementations. This strategy was partly
motivated by not wanting to have preprocessor macros describing what is
available, and the associated need to recompile rather than just relink
when those macros change.

So we now have backends/ceed-backend-list.h that declares all the
backends wrapped in a macro. It is included by
backends/ceed-backend-weak.c to create weak definitions of all the
backends. In the makefile, we sort so this comes last when linking a
shared or static library, and thus these weak symbols will only be
picked up if they were not defined by the actual backend source files.
The same header is included (with different macro wrapping) in
interface/ceed-register.c, where CeedRegisterAll() is defined.

To add a new backend, one must do essentially the same registration
strategy as in the past, plus add one line to the common
ceed-backend-list.h.
H A Dceed-opt-blocked.cdiff 1d0137909cd290d677dbca28a6953e6505c9d054 Mon Dec 14 19:10:44 UTC 2020 Jed Brown <jed@jedbrown.org> Add static library (libceed.a) [resolve #670]

We no longer use __attribute__((constructor)) to register backends and
gallery implementations because we can't ensure that the symbols are
linked into applications that link the static library. We've switched to
creating CeedRegisterAll() and CeedQFunctionRegisterAll(), which are
called automatically by the library, and call weak symbols to register
all the backend/gallery implementations. This strategy was partly
motivated by not wanting to have preprocessor macros describing what is
available, and the associated need to recompile rather than just relink
when those macros change.

So we now have backends/ceed-backend-list.h that declares all the
backends wrapped in a macro. It is included by
backends/ceed-backend-weak.c to create weak definitions of all the
backends. In the makefile, we sort so this comes last when linking a
shared or static library, and thus these weak symbols will only be
picked up if they were not defined by the actual backend source files.
The same header is included (with different macro wrapping) in
interface/ceed-register.c, where CeedRegisterAll() is defined.

To add a new backend, one must do essentially the same registration
strategy as in the past, plus add one line to the common
ceed-backend-list.h.
/libCEED/backends/xsmm/
H A Dceed-xsmm-serial.cdiff 1d0137909cd290d677dbca28a6953e6505c9d054 Mon Dec 14 19:10:44 UTC 2020 Jed Brown <jed@jedbrown.org> Add static library (libceed.a) [resolve #670]

We no longer use __attribute__((constructor)) to register backends and
gallery implementations because we can't ensure that the symbols are
linked into applications that link the static library. We've switched to
creating CeedRegisterAll() and CeedQFunctionRegisterAll(), which are
called automatically by the library, and call weak symbols to register
all the backend/gallery implementations. This strategy was partly
motivated by not wanting to have preprocessor macros describing what is
available, and the associated need to recompile rather than just relink
when those macros change.

So we now have backends/ceed-backend-list.h that declares all the
backends wrapped in a macro. It is included by
backends/ceed-backend-weak.c to create weak definitions of all the
backends. In the makefile, we sort so this comes last when linking a
shared or static library, and thus these weak symbols will only be
picked up if they were not defined by the actual backend source files.
The same header is included (with different macro wrapping) in
interface/ceed-register.c, where CeedRegisterAll() is defined.

To add a new backend, one must do essentially the same registration
strategy as in the past, plus add one line to the common
ceed-backend-list.h.
H A Dceed-xsmm-blocked.cdiff 1d0137909cd290d677dbca28a6953e6505c9d054 Mon Dec 14 19:10:44 UTC 2020 Jed Brown <jed@jedbrown.org> Add static library (libceed.a) [resolve #670]

We no longer use __attribute__((constructor)) to register backends and
gallery implementations because we can't ensure that the symbols are
linked into applications that link the static library. We've switched to
creating CeedRegisterAll() and CeedQFunctionRegisterAll(), which are
called automatically by the library, and call weak symbols to register
all the backend/gallery implementations. This strategy was partly
motivated by not wanting to have preprocessor macros describing what is
available, and the associated need to recompile rather than just relink
when those macros change.

So we now have backends/ceed-backend-list.h that declares all the
backends wrapped in a macro. It is included by
backends/ceed-backend-weak.c to create weak definitions of all the
backends. In the makefile, we sort so this comes last when linking a
shared or static library, and thus these weak symbols will only be
picked up if they were not defined by the actual backend source files.
The same header is included (with different macro wrapping) in
interface/ceed-register.c, where CeedRegisterAll() is defined.

To add a new backend, one must do essentially the same registration
strategy as in the past, plus add one line to the common
ceed-backend-list.h.
/libCEED/backends/avx/
H A Dceed-avx-blocked.cdiff 1d0137909cd290d677dbca28a6953e6505c9d054 Mon Dec 14 19:10:44 UTC 2020 Jed Brown <jed@jedbrown.org> Add static library (libceed.a) [resolve #670]

We no longer use __attribute__((constructor)) to register backends and
gallery implementations because we can't ensure that the symbols are
linked into applications that link the static library. We've switched to
creating CeedRegisterAll() and CeedQFunctionRegisterAll(), which are
called automatically by the library, and call weak symbols to register
all the backend/gallery implementations. This strategy was partly
motivated by not wanting to have preprocessor macros describing what is
available, and the associated need to recompile rather than just relink
when those macros change.

So we now have backends/ceed-backend-list.h that declares all the
backends wrapped in a macro. It is included by
backends/ceed-backend-weak.c to create weak definitions of all the
backends. In the makefile, we sort so this comes last when linking a
shared or static library, and thus these weak symbols will only be
picked up if they were not defined by the actual backend source files.
The same header is included (with different macro wrapping) in
interface/ceed-register.c, where CeedRegisterAll() is defined.

To add a new backend, one must do essentially the same registration
strategy as in the past, plus add one line to the common
ceed-backend-list.h.
H A Dceed-avx-serial.cdiff 1d0137909cd290d677dbca28a6953e6505c9d054 Mon Dec 14 19:10:44 UTC 2020 Jed Brown <jed@jedbrown.org> Add static library (libceed.a) [resolve #670]

We no longer use __attribute__((constructor)) to register backends and
gallery implementations because we can't ensure that the symbols are
linked into applications that link the static library. We've switched to
creating CeedRegisterAll() and CeedQFunctionRegisterAll(), which are
called automatically by the library, and call weak symbols to register
all the backend/gallery implementations. This strategy was partly
motivated by not wanting to have preprocessor macros describing what is
available, and the associated need to recompile rather than just relink
when those macros change.

So we now have backends/ceed-backend-list.h that declares all the
backends wrapped in a macro. It is included by
backends/ceed-backend-weak.c to create weak definitions of all the
backends. In the makefile, we sort so this comes last when linking a
shared or static library, and thus these weak symbols will only be
picked up if they were not defined by the actual backend source files.
The same header is included (with different macro wrapping) in
interface/ceed-register.c, where CeedRegisterAll() is defined.

To add a new backend, one must do essentially the same registration
strategy as in the past, plus add one line to the common
ceed-backend-list.h.
/libCEED/backends/blocked/
H A Dceed-blocked.cdiff 1d0137909cd290d677dbca28a6953e6505c9d054 Mon Dec 14 19:10:44 UTC 2020 Jed Brown <jed@jedbrown.org> Add static library (libceed.a) [resolve #670]

We no longer use __attribute__((constructor)) to register backends and
gallery implementations because we can't ensure that the symbols are
linked into applications that link the static library. We've switched to
creating CeedRegisterAll() and CeedQFunctionRegisterAll(), which are
called automatically by the library, and call weak symbols to register
all the backend/gallery implementations. This strategy was partly
motivated by not wanting to have preprocessor macros describing what is
available, and the associated need to recompile rather than just relink
when those macros change.

So we now have backends/ceed-backend-list.h that declares all the
backends wrapped in a macro. It is included by
backends/ceed-backend-weak.c to create weak definitions of all the
backends. In the makefile, we sort so this comes last when linking a
shared or static library, and thus these weak symbols will only be
picked up if they were not defined by the actual backend source files.
The same header is included (with different macro wrapping) in
interface/ceed-register.c, where CeedRegisterAll() is defined.

To add a new backend, one must do essentially the same registration
strategy as in the past, plus add one line to the common
ceed-backend-list.h.
/libCEED/backends/cuda-shared/
H A Dceed-cuda-shared.cdiff 1d0137909cd290d677dbca28a6953e6505c9d054 Mon Dec 14 19:10:44 UTC 2020 Jed Brown <jed@jedbrown.org> Add static library (libceed.a) [resolve #670]

We no longer use __attribute__((constructor)) to register backends and
gallery implementations because we can't ensure that the symbols are
linked into applications that link the static library. We've switched to
creating CeedRegisterAll() and CeedQFunctionRegisterAll(), which are
called automatically by the library, and call weak symbols to register
all the backend/gallery implementations. This strategy was partly
motivated by not wanting to have preprocessor macros describing what is
available, and the associated need to recompile rather than just relink
when those macros change.

So we now have backends/ceed-backend-list.h that declares all the
backends wrapped in a macro. It is included by
backends/ceed-backend-weak.c to create weak definitions of all the
backends. In the makefile, we sort so this comes last when linking a
shared or static library, and thus these weak symbols will only be
picked up if they were not defined by the actual backend source files.
The same header is included (with different macro wrapping) in
interface/ceed-register.c, where CeedRegisterAll() is defined.

To add a new backend, one must do essentially the same registration
strategy as in the past, plus add one line to the common
ceed-backend-list.h.
/libCEED/backends/cuda-gen/
H A Dceed-cuda-gen.cdiff 1d0137909cd290d677dbca28a6953e6505c9d054 Mon Dec 14 19:10:44 UTC 2020 Jed Brown <jed@jedbrown.org> Add static library (libceed.a) [resolve #670]

We no longer use __attribute__((constructor)) to register backends and
gallery implementations because we can't ensure that the symbols are
linked into applications that link the static library. We've switched to
creating CeedRegisterAll() and CeedQFunctionRegisterAll(), which are
called automatically by the library, and call weak symbols to register
all the backend/gallery implementations. This strategy was partly
motivated by not wanting to have preprocessor macros describing what is
available, and the associated need to recompile rather than just relink
when those macros change.

So we now have backends/ceed-backend-list.h that declares all the
backends wrapped in a macro. It is included by
backends/ceed-backend-weak.c to create weak definitions of all the
backends. In the makefile, we sort so this comes last when linking a
shared or static library, and thus these weak symbols will only be
picked up if they were not defined by the actual backend source files.
The same header is included (with different macro wrapping) in
interface/ceed-register.c, where CeedRegisterAll() is defined.

To add a new backend, one must do essentially the same registration
strategy as in the past, plus add one line to the common
ceed-backend-list.h.
/libCEED/backends/ref/
H A Dceed-ref.cdiff 1d0137909cd290d677dbca28a6953e6505c9d054 Mon Dec 14 19:10:44 UTC 2020 Jed Brown <jed@jedbrown.org> Add static library (libceed.a) [resolve #670]

We no longer use __attribute__((constructor)) to register backends and
gallery implementations because we can't ensure that the symbols are
linked into applications that link the static library. We've switched to
creating CeedRegisterAll() and CeedQFunctionRegisterAll(), which are
called automatically by the library, and call weak symbols to register
all the backend/gallery implementations. This strategy was partly
motivated by not wanting to have preprocessor macros describing what is
available, and the associated need to recompile rather than just relink
when those macros change.

So we now have backends/ceed-backend-list.h that declares all the
backends wrapped in a macro. It is included by
backends/ceed-backend-weak.c to create weak definitions of all the
backends. In the makefile, we sort so this comes last when linking a
shared or static library, and thus these weak symbols will only be
picked up if they were not defined by the actual backend source files.
The same header is included (with different macro wrapping) in
interface/ceed-register.c, where CeedRegisterAll() is defined.

To add a new backend, one must do essentially the same registration
strategy as in the past, plus add one line to the common
ceed-backend-list.h.

12