[openib-general] Re: [RFC] OpenSM: include svn version in build string
Troy Benjegerdes
hozer at hozed.org
Tue Nov 22 10:20:32 PST 2005
On Tue, Nov 22, 2005 at 06:00:47PM +0200, Michael S. Tsirkin wrote:
> Quoting r. Hal Rosenstock <halr at voltaire.com>:
> > Subject: [RFC] OpenSM: include svn version in build string
> >
> > Hi,
> >
> > It has been requested (several times now :-) that the svn version be
> > included in the OpenSM build string version info (as 1.1.0 isn't nearly
> > descriptive enough). This needs to work both in and out of the OpenIB
> > svn tree as builds will occur both ways.
> >
> > So one way to accomplish this which has additional overhead on each
> > checkin is to maintain something like an osm_svnversion file at the osm
> > level of the tree and display that in opensm/main.c when OpenSM starts
> > up.
> >
> > Another way would be to modify include/opensm/osm_base.h OSM_VERSION
> > with this info. Again. manual.
> >
> > Anyone see how to get away from the manual overhead of this ?
> >
> > Anyone have other ideas on how to solve this ? (Are there other examples
> > of this out there ?)
> >
> > Thanks.
> >
> > -- Hal
>
> You also want a url in there to make subversion revision a unique identifier.
>
> For in-tree build, you can have Makefile generate a header from
> .svn/entries
>
> something like
>
> version.h: .svn/entries
> grep -e revision= -e url= $^ | head 2> $@
>
> in the makefile should be sufficient.
>
> For an out of tree build, you just stick something into version.h.
> after you do svn export.
>
> Its also important to have a default version identifier by
> keeping a backup version.h under include directory, have that
> picked up after the local version if that doesnt exist.
I'd suggest using the command 'svnversion' if it exists, since that will
tell you if you have a locally modified version as well.
I tried to get this working for the kernel modules, and came up with
this:
ibversion.sh:
#!/bin/sh
SVN=`svnversion $1`
echo \#define IBVERSION \"$SVN\" > $1.tmp
diff -q $1.tmp $1
if [ $? != '0' ] ; then
mv $1.tmp $1
else
rm $1.tmp
fi
-------------- next part --------------
Index: linux-kernel/infiniband/ulp/ipoib/ipoib_main.c
===================================================================
--- linux-kernel/infiniband/ulp/ipoib/ipoib_main.c (revision 3968)
+++ linux-kernel/infiniband/ulp/ipoib/ipoib_main.c (working copy)
@@ -51,6 +51,9 @@
MODULE_DESCRIPTION("IP-over-InfiniBand net driver");
MODULE_LICENSE("Dual BSD/GPL");
+#include <ibversion.h>
+MODULE_VERSION(IBVERSION);
+
#ifdef CONFIG_INFINIBAND_IPOIB_DEBUG
int ipoib_debug_level;
@@ -917,6 +920,8 @@
struct ipoib_dev_priv *priv;
int result = -ENOMEM;
+ printk(KERN_WARNING "hca->node_type = %d\n", hca->node_type);
+
priv = ipoib_intf_alloc(format);
if (!priv)
goto alloc_mem_failed;
Index: linux-kernel/infiniband/ulp/ipoib/Makefile
===================================================================
--- linux-kernel/infiniband/ulp/ipoib/Makefile (revision 3968)
+++ linux-kernel/infiniband/ulp/ipoib/Makefile (working copy)
@@ -9,3 +9,6 @@
ipoib_vlan.o
ib_ipoib-$(CONFIG_INFINIBAND_IPOIB_DEBUG) += ipoib_fs.o
+drivers/infiniband/include/ibversion.h: FORCE
+ sh drivers/infiniband/ibversion.sh $@
+
Index: linux-kernel/infiniband/hw/mthca/Makefile
===================================================================
--- linux-kernel/infiniband/hw/mthca/Makefile (revision 3968)
+++ linux-kernel/infiniband/hw/mthca/Makefile (working copy)
@@ -1,5 +1,8 @@
EXTRA_CFLAGS += -Idrivers/infiniband/include
+drivers/infiniband/include/ibversion.h: FORCE
+ sh drivers/infiniband/ibversion.sh $@
+
ifdef CONFIG_INFINIBAND_MTHCA_DEBUG
EXTRA_CFLAGS += -DDEBUG
endif
@@ -11,3 +14,4 @@
mthca_mr.o mthca_qp.o mthca_av.o mthca_mcg.o mthca_mad.o \
mthca_provider.o mthca_memfree.o mthca_uar.o mthca_srq.o \
mthca_catas.o
+
Index: linux-kernel/infiniband/hw/mthca/mthca_dev.h
===================================================================
--- linux-kernel/infiniband/hw/mthca/mthca_dev.h (revision 3968)
+++ linux-kernel/infiniband/hw/mthca/mthca_dev.h (working copy)
@@ -44,13 +44,15 @@
#include <linux/pci.h>
#include <linux/dma-mapping.h>
#include <asm/semaphore.h>
+#include <ibversion.h>
#include "mthca_provider.h"
#include "mthca_doorbell.h"
#define DRV_NAME "ib_mthca"
#define PFX DRV_NAME ": "
-#define DRV_VERSION "0.06"
+//#define DRV_VERSION "0.06"
+#define DRV_VERSION IBVERSION
#define DRV_RELDATE "June 23, 2005"
enum {
More information about the general
mailing list