[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 2/3] Update to use a .config file



On Thu, Jul 14, 2016 at 09:05:36AM +0100, Ross Lagerwall wrote:
> On 06/15/2016 03:00 PM, Konrad Rzeszutek Wilk wrote:
> >On Wed, Jun 15, 2016 at 09:08:46AM +0100, Ross Lagerwall wrote:
> >>On 06/14/2016 04:35 PM, Konrad Rzeszutek Wilk wrote:
> >>>On Fri, Jun 10, 2016 at 12:02:44PM +0100, Ross Lagerwall wrote:
> >>>>Remove the old --xen-debug option, and instead, require the user to pass
> >>>>a .config file matching the original build's .config.
> >>>
> >>>Hm, that throws this off a bit for the older hypervisors (to which
> >>>I had backported livepatch). Perhaps we could add some logic to
> >>>check if common/Kconfig exist?
> >>
> >>At this point rather than adding extra logic to support different
> >>still-experimental versions, I'd rather just have a different branch. Maybe
> >>have a branch per Xen release?
> >>
> >>>
> >>>And I also wonder if the --xen-debug option removal should be a seperate
> >>>patch?
> >>>
> >>
> >>Well the two are related -- the motivation to use the .config is because the
> >>debug flag is now controlled by the .config rather than the command-line
> >>argument.
> >
> >But not in the 4.7 that is going out - that 'debug=y' is non-Kconfig?
> >>
> 
> OK, I'll split it into two. Feel free to create a stable-47 branch in
> livepatch-build-tools.git with only the .config patch. Personally, I'd
> rather not spend much time backporting stuff to support a tech preview
> feature on an older branch.

We will need to update the Wiki a bit too...

What if I we do something simpler?


diff --git a/livepatch-build b/livepatch-build
index 6254c29..97b33a5 100755
--- a/livepatch-build
+++ b/livepatch-build
@@ -66,7 +66,11 @@ function build_full()
 {
     cd "${SRCDIR}/xen" || die
     make "-j$CPUS" clean &> "${OUTPUT}/build_full_clean.log" || die
-    make "-j$CPUS" debug="$XEN_DEBUG" &> "${OUTPUT}/build_full_compile.log" || 
die
+    if [ "x$XEN_DEBUG" == "xignore" ]; then
+       make "-j$CPUS" debug="$XEN_DEBUG" &> "${OUTPUT}/build_full_compile.log" 
|| die
+    else
+       make "-j$CPUS" &> "${OUTPUT}/build_full_compile.log" || die
+    fi
     cp xen-syms "$OUTPUT"
 }
 
@@ -87,7 +91,11 @@ function build_special()
     cd "${SRCDIR}/xen" || die
     sed -i 's/CFLAGS += -nostdinc/CFLAGS += -nostdinc -ffunction-sections 
-fdata-sections/' Rules.mk
     sed -i 's/--section-alignment=0x200000/--section-alignment=0x1000/' 
arch/x86/Makefile
-    make "-j$CPUS" debug="$XEN_DEBUG" &> "${OUTPUT}/build_${name}_compile.log" 
|| die
+    if [ "x$XEN_DEBUG" == "xignore" ]; then
+        make "-j$CPUS" &> "${OUTPUT}/build_${name}_compile.log" || die
+    else
+        make "-j$CPUS" debug="$XEN_DEBUG" &> 
"${OUTPUT}/build_${name}_compile.log" || die
+    fi
     sed -i 's/CFLAGS += -nostdinc -ffunction-sections -fdata-sections/CFLAGS 
+= -nostdinc/' Rules.mk
     sed -i 's/--section-alignment=0x1000/--section-alignment=0x200000/' 
arch/x86/Makefile
 
@@ -165,7 +173,7 @@ usage() {
     echo "        -j, --cpus         Number of CPUs to use" >&2
     echo "        -k, --skip         Skip build or diff phase" >&2
     echo "        -d, --debug        Enable debug logging" >&2
-    echo "        --xen-debug        Build debug Xen" >&2
+    echo "        --xen-debug        Build debug Xen (if your .config does not 
have the options)" >&2
     echo "        --xen-syms         Build against a xen-syms" >&2
     echo "        --depends          Required build-id" >&2
     echo "        --prelink          Prelink" >&2
@@ -277,6 +285,10 @@ if [ "${SKIP}" != "build" ]; then
     cp -f "${CONFIGFILE}" "${OUTPUT}/.config"
     cp -f "${OUTPUT}/.config" "xen/.config"
 
+    grep -q CONFIG_DEBUG "xen/.config"
+    if [ $? -eq 0 ]; then
+        XEN_DEBUG=ignore
+    fi 
     echo "Perform full initial build with ${CPUS} CPU(s)..."
     build_full

? 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.