aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/gettingstarted/developers/gitreview.rst32
-rw-r--r--docs/gettingstarted/developers/multiarch/nodefns.rst52
2 files changed, 44 insertions, 40 deletions
diff --git a/docs/gettingstarted/developers/gitreview.rst b/docs/gettingstarted/developers/gitreview.rst
index e32d8c59991..a962d25e4fd 100644
--- a/docs/gettingstarted/developers/gitreview.rst
+++ b/docs/gettingstarted/developers/gitreview.rst
@@ -140,10 +140,24 @@ When you're done viewing or modifying a branch, get back to the master branch by
$ git reset --hard origin/master
$ git checkout master
-Resolving a Conflict
---------------------------------
+Patch Conflict Resolution
+-------------------------
-If a change has a conflict it should be resolved by entering:
+Two different patch conflict scenarios arise from time to
+time. Sometime after uploading a patch to https://gerrit.fd.io, the
+gerrit UI may show a patch status of "Merge Conflict."
+
+Or, you may attempt to upload a new patch-set via "git review," only to
+discover that the gerrit server won't allow the upload due to an upstream
+merge conflict.
+
+In both cases, it's [usually] fairly simple to fix the problem. You
+need to rebase the patch onto master/latest. Details vary from case to
+case.
+
+Here's how to rebase a patch previously uploaded to the Gerrit server
+which now has a merge conflict. In a fresh workspace cloned from
+master/latest, do the following:
.. code-block:: console
@@ -154,5 +168,17 @@ If a change has a conflict it should be resolved by entering:
$ git rebase --continue
$ git review
+In the upload-failure case, use caution: carefully **save your work**
+before you do anything else!
+
+Rebase your patch and try again. Please **do not** re-download ["git
+review -d"] the patch from the gerrit server...:
+
+.. code-block:: console
+ $ git rebase origin/master
+ while (conflicts)
+ <fix conflicts>
+ $ git rebase --continue
+ $ git review
diff --git a/docs/gettingstarted/developers/multiarch/nodefns.rst b/docs/gettingstarted/developers/multiarch/nodefns.rst
index ad68385d6c5..a43d40e301f 100644
--- a/docs/gettingstarted/developers/multiarch/nodefns.rst
+++ b/docs/gettingstarted/developers/multiarch/nodefns.rst
@@ -117,44 +117,22 @@ example, a bunch of functions with names of the form
shows up with a name of the form "xxx_inline.isra.1", it's quite likely
that the inline was declared "static inline" instead of "always_inline".
-Add the required Makefile.am content
-------------------------------------
+Modify CMakeLists.txt
+---------------------
-If the component in question already sets a "multiversioning_sources"
-variable, simply add the indicated .c file to the list. If not, add
-the required boilerplate:
+If the component in question already lists "MULTIARCH_SOURCES", simply
+add the indicated .c file to the list. Otherwise, add as shown
+below. Note that the added file "new_multiarch_node.c" should appear in
+*both* SOURCES and MULTIARCH_SOURCES:
::
- if CPU_X86_64
- sdp_multiversioning_sources = \
- sdp/node.c \
- sdp/sdp_slookup.c
-
- if CC_SUPPORTS_AVX2
- ###############################################################
- # AVX2
- ###############################################################
- libsdp_plugin_avx2_la_SOURCES = $(sdp_multiversioning_sources)
- libsdp_plugin_avx2_la_CFLAGS = \
- $(AM_CFLAGS) @CPU_AVX2_FLAGS@ \
- -DCLIB_MARCH_VARIANT=avx2
- noinst_LTLIBRARIES += libsdp_plugin_avx2.la
- sdp_plugin_la_LIBADD += libsdp_plugin_avx2.la
- endif
-
- if CC_SUPPORTS_AVX512
- ###############################################################
- # AVX512
- ###############################################################
- libsdp_plugin_avx512_la_SOURCES = $(sdp_multiversioning_sources)
- libsdp_plugin_avx512_la_CFLAGS = \
- $(AM_CFLAGS) @CPU_AVX512_FLAGS@ \
- -DCLIB_MARCH_VARIANT=avx512
- noinst_LTLIBRARIES += libsdp_plugin_avx512.la
- sdp_plugin_la_LIBADD += libsdp_plugin_avx512.la
- endif
- endif
-
-A certain amount of cut-paste-modify is currently required. Hopefully
-we'll manage to improve the scheme in the future.
+ add_vpp_plugin(myplugin
+ SOURCES
+ new_multiarch_node.c
+ ...
+
+ MULTIARCH_SOURCES
+ new_ multiarch_node.c
+ ...
+ )