[DRBD-cvs] r1455 - in trunk: . drbd drbd/linux user

drbd-user@lists.linbit.com drbd-user@lists.linbit.com
Mon, 26 Jul 2004 18:07:44 +0200 (CEST)


Author: lars
Date: 2004-07-26 18:07:43 +0200 (Mon, 26 Jul 2004)
New Revision: 1455

Modified:
   trunk/Makefile
   trunk/drbd/Makefile
   trunk/drbd/Makefile-2.4
   trunk/drbd/Makefile-2.6
   trunk/drbd/drbd_main.c
   trunk/drbd/drbd_proc.c
   trunk/drbd/drbd_receiver.c
   trunk/drbd/linux/drbd_config.h
   trunk/user/Makefile
   trunk/user/drbdadm_main.c
   trunk/user/drbdsetup.c
Log:
- add auto-generated drbd/drbd_buildtag.c, which defines the function of that name,
  which returns "SVN Revision: `svnversion -n .` build by $USER@$HOST, `date`"
- quiten compiler warnings with 2.4.X headers
  (likely(some_pointer) "... interger from pointer without a cast ... " )


Modified: trunk/Makefile
===================================================================
--- trunk/Makefile	2004-07-24 18:51:43 UTC (rev 1454)
+++ trunk/Makefile	2004-07-26 16:07:43 UTC (rev 1455)
@@ -17,12 +17,15 @@
 # the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
 #
 
+# TODO move some of the more cryptic bash scriptlets here into scripts/*
+# and call those from here.	-- lge 
+
 #PREFIX      = /usr/local
 
 SUBDIRS     = user scripts benchmark documentation drbd #testing
 ALLSUBDIRS  = user scripts benchmark documentation drbd testing
 
-REL_VERSION := $(shell sed -ne '/REL_VERSION/{s/^.*"\(.*\) svn .*/\1/;p;q;}' drbd/linux/drbd_config.h)
+REL_VERSION := $(shell sed -ne '/REL_VERSION/{s/^[^"]*"\([^ "]*\).*/\1/;p;q;}' drbd/linux/drbd_config.h)
 ifdef FORCE
 #
 # NOTE to generate a tgz even if too lazy to update the changelogs,
@@ -87,9 +90,30 @@
 	   up2date=false; fi ; \
 	$$up2date
 
+# XXX this is newly created whenever the toplevel makefile does something.
+# however it is NOT updated when you just do a make in user/ or drbd/ ...
+#
+# update of drbd_buildtag.c is forced:
+.PHONY: drbd/drbd_buildtag.c
+drbd/drbd_buildtag.c:
+	@is_tarball=`test -e .svn/. && echo false || echo true`;		\
+	set -e; exec > $@.new;							\
+	echo -e "/* automatically generated. DO NOT EDIT. */";			\
+	echo -e "const char * drbd_buildtag(void)\n{";			\
+	if $$is_tarball; then							\
+	  if ! test -e $@ ; then 						\
+	  	echo >&2 "your DRBD source tree is broken. unpack again.";	\
+		exit 1;								\
+	  fi;									\
+	  grep return $@ ;							\
+	else									\
+	  echo -ne "\treturn \"SVN Revision: "; svnversion -n .; echo \";	\
+	fi ;									\
+	echo -e "\t\t\" build by $$USER@$$HOSTNAME, `date "+%F %T"`\";\n}";	\
+       	mv $@{.new,}
+
 # update of .filelist is forced:
 .PHONY: .filelist
-
 .filelist:
 	@ svn info >/dev/null || { echo "you need a svn checkout to do this." ; false ; }
 	@find $$(svn st -v | sed '/^?/d;s/^.\{8\} \+[0-9]\+ \+[0-9]\+ [a-z]\+ *//;') \
@@ -99,21 +123,11 @@
 	@find documentation -name "[^.]*.[58]" -o -name "*.html" | \
 	sed "s/^/drbd-$(DIST_VERSION)\//" >> .filelist           ;\
 	echo drbd-$(DIST_VERSION)/drbd_config.h >> .filelist     ;\
+	echo drbd-$(DIST_VERSION)/drbd/drbd_buildtag.c >> .filelist ;\
 	echo drbd-$(DIST_VERSION)/.filelist >> .filelist         ;\
 	for d in documentation/{ja,pt_BR}; do test -e $$d/Makefile && echo drbd-$(DIST_VERSION)/$$d/Makefile >> .filelist ; done
 	@echo "./.filelist updated."
 
-update.filelist.cvs:
-	cvs status | grep -o "/drbd/drbd/[^,]*" |                 \
-	sed "s/Attic\///;                                         \
-	     s/\/drbd\/drbd/drbd-$(DIST_VERSION)/;" > .filelist  ;\
-	[ -s .filelist ] # assert there is something in .filelist now
-	find documentation -name "[^.]*.[58]" -o -name "*.html" | \
-	sed "s/^/drbd-$(DIST_VERSION)\//" >> .filelist           ;\
-	echo drbd-$(DIST_VERSION)/drbd_config.h >> .filelist     ;\
-	echo drbd-$(DIST_VERSION)/.filelist >> .filelist         ;\
-	for d in documentation/{ja,pt_BR}; do test -e $$d/Makefile && echo drbd-$(DIST_VERSION)/$$d/Makefile >> .filelist ; done
-
 tgz: .filelist
 	ln -sf drbd/linux/drbd_config.h drbd_config.h
 	rm -f drbd-$(DIST_VERSION)
@@ -126,8 +140,16 @@
 tgz: check_changelogs_up2date doc
 endif
 
-tarball: distclean doc tgz
+check_all_committed:
+	@modified=`svn st -q`; 		\
+	if test -n "$$modified" ; then	\
+		echo "$$modified";	\
+	       	false;			\
+	fi
 
+tarball: check_all_committed distclean doc tgz
+all tools doc .filelist: drbd/drbd_buildtag.c
+
 KDIR := $(shell echo /lib/modules/`uname -r`/build)
 KVER := $(shell \
 	echo -e "\#include <linux/version.h>\ndrbd_kernel_release UTS_RELEASE" | \

Modified: trunk/drbd/Makefile
===================================================================
--- trunk/drbd/Makefile	2004-07-24 18:51:43 UTC (rev 1454)
+++ trunk/drbd/Makefile	2004-07-26 16:07:43 UTC (rev 1455)
@@ -81,7 +81,11 @@
   endif
 	@echo ""
 
-  kbuild:
+  drbd_buildtag.c:
+	@echo "you probably need to do a 'make' in DRBDs toplevel directory.";\
+	false
+
+  kbuild: drbd_buildtag.c
 	@rm -f .kernelrelease*
 	$(MAKE) -C $(KDIR) SUBDIRS=$(DRBDSRC) $(ARCH_UM) modules
 	@mv .kernelrelease.new .kernelrelease

Modified: trunk/drbd/Makefile-2.4
===================================================================
--- trunk/drbd/Makefile-2.4	2004-07-24 18:51:43 UTC (rev 1454)
+++ trunk/drbd/Makefile-2.4	2004-07-26 16:07:43 UTC (rev 1455)
@@ -1,5 +1,5 @@
-drbd-objs  := drbd_bitmap.o drbd_fs.o drbd_proc.o drbd_worker.o \
-	      drbd_receiver.o drbd_req.o drbd_actlog.o \
+drbd-objs  := drbd_buildtag.o drbd_bitmap.o drbd_fs.o drbd_proc.o \
+	      drbd_worker.o drbd_receiver.o drbd_req.o drbd_actlog.o \
 	      lru_cache.o mempool-2.4.o drbd_main.o
 obj-$(CONFIG_BLK_DEV_DRBD)     += drbd.o
 

Modified: trunk/drbd/Makefile-2.6
===================================================================
--- trunk/drbd/Makefile-2.6	2004-07-24 18:51:43 UTC (rev 1454)
+++ trunk/drbd/Makefile-2.6	2004-07-26 16:07:43 UTC (rev 1455)
@@ -1,4 +1,4 @@
-drbd-objs  := drbd_bitmap.o drbd_fs.o drbd_proc.o drbd_worker.o \
-	      drbd_receiver.o drbd_req.o drbd_actlog.o \
+drbd-objs  := drbd_buildtag.o drbd_bitmap.o drbd_fs.o drbd_proc.o \
+	      drbd_worker.o drbd_receiver.o drbd_req.o drbd_actlog.o \
 	      lru_cache.o drbd_main.o
 obj-$(CONFIG_BLK_DEV_DRBD)     += drbd.o

Modified: trunk/drbd/drbd_main.c
===================================================================
--- trunk/drbd/drbd_main.c	2004-07-24 18:51:43 UTC (rev 1454)
+++ trunk/drbd/drbd_main.c	2004-07-26 16:07:43 UTC (rev 1455)
@@ -44,6 +44,7 @@
 #include <linux/file.h>
 #include <linux/proc_fs.h>
 #include <linux/init.h>
+#include <linux/mm.h>
 #include <linux/slab.h>
 #include <linux/devfs_fs_kernel.h>
 
@@ -1718,12 +1719,14 @@
 
 	drbd_proc = NULL; // play safe for drbd_cleanup
 	drbd_conf = kmalloc(sizeof(drbd_dev)*minor_count,GFP_KERNEL);
-	if (likely(drbd_conf)) memset(drbd_conf,0,sizeof(drbd_dev)*minor_count);
+	if (likely(drbd_conf!=NULL))
+		memset(drbd_conf,0,sizeof(drbd_dev)*minor_count);
 	else goto Enomem;
 
 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
 	drbd_sizes = kmalloc(sizeof(int)*minor_count,GFP_KERNEL);
-	if (likely(drbd_sizes)) memset(drbd_sizes,0,sizeof(int)*minor_count);
+	if (likely(drbd_sizes!=NULL))
+		memset(drbd_sizes,0,sizeof(int)*minor_count);
 	else goto Enomem;
 	drbd_blocksizes = kmalloc(sizeof(int)*minor_count,GFP_KERNEL);
 	if (unlikely(!drbd_blocksizes)) goto Enomem;
@@ -1854,6 +1857,7 @@
 	printk(KERN_INFO DEVICE_NAME ": initialised. "
 	       "Version: " REL_VERSION " (api:%d/proto:%d)\n",
 	       API_VERSION,PRO_VERSION);
+	printk(KERN_INFO DEVICE_NAME ": %s\n", drbd_buildtag());
 	printk(KERN_INFO DEVICE_NAME": registered as block device major %d\n", major_nr);
 
 	return 0; // Success!

Modified: trunk/drbd/drbd_proc.c
===================================================================
--- trunk/drbd/drbd_proc.c	2004-07-24 18:51:43 UTC (rev 1454)
+++ trunk/drbd/drbd_proc.c	2004-07-26 16:07:43 UTC (rev 1455)
@@ -182,8 +182,8 @@
 	int rlen, i;
 	const char *sn;
 
-	rlen = sprintf(buf, "version: " REL_VERSION " (api:%d/proto:%d)\n\n",
-		       API_VERSION,PRO_VERSION);
+	rlen = sprintf(buf, "version: " REL_VERSION " (api:%d/proto:%d)\n%s\n",
+		       API_VERSION,PRO_VERSION, drbd_buildtag());
 
 	/*
 	  cs .. connection state

Modified: trunk/drbd/drbd_receiver.c
===================================================================
--- trunk/drbd/drbd_receiver.c	2004-07-24 18:51:43 UTC (rev 1454)
+++ trunk/drbd/drbd_receiver.c	2004-07-26 16:07:43 UTC (rev 1455)
@@ -38,6 +38,7 @@
 #include <linux/version.h>
 #include <linux/fs.h>
 #include <linux/file.h>
+#include <linux/mm.h>
 #include <linux/slab.h>
 #include <linux/smp_lock.h>
 #include <linux/pkt_sched.h>

Modified: trunk/drbd/linux/drbd_config.h
===================================================================
--- trunk/drbd/linux/drbd_config.h	2004-07-24 18:51:43 UTC (rev 1454)
+++ trunk/drbd/linux/drbd_config.h	2004-07-26 16:07:43 UTC (rev 1455)
@@ -20,7 +20,9 @@
 #ifndef DRBD_CONFIG_H
 #define DRBD_CONFIG_H
 
-#define REL_VERSION "0.7.0 svn $Rev$"
+extern const char * drbd_buildtag(void);
+
+#define REL_VERSION "0.7.0"
 #define API_VERSION 74
 #define PRO_VERSION 74
 

Modified: trunk/user/Makefile
===================================================================
--- trunk/user/Makefile	2004-07-24 18:51:43 UTC (rev 1454)
+++ trunk/user/Makefile	2004-07-26 16:07:43 UTC (rev 1455)
@@ -20,11 +20,15 @@
 CFLAGS = -c -Wall -I../drbd
 CC = gcc
 
+drbdadm-obj = drbdadm_scanner.o drbdadm_parser.o drbdadm_main.o \
+	      drbdadm_adjust.o ../drbd/drbd_buildtag.o
+
+drbdsetup-obj = drbdsetup.o ../drbd/drbd_buildtag.o
+
 all: drbdsetup drbdadm
 
-drbdadm: drbdadm_scanner.o drbdadm_parser.o drbdadm_main.o drbdadm_adjust.o
-	$(CC) -o drbdadm drbdadm_scanner.o drbdadm_parser.o drbdadm_main.o \
-	drbdadm_adjust.o
+drbdadm: $(drbdadm-obj)
+	$(CC) -o $@ $^ 
 
 drbdadm_scanner.c: drbdadm_scanner.fl drbdadm_parser.h
 	flex -s -odrbdadm_scanner.c drbdadm_scanner.fl
@@ -37,8 +41,8 @@
 drbdadm_parser.c: drbdadm_parser.y drbdadm.h
 	bison -d -o drbdadm_parser.c drbdadm_parser.y
 
-drbdsetup: drbdsetup.o
-	$(CC) -o drbdsetup drbdsetup.o
+drbdsetup: $(drbdsetup-obj)
+	$(CC) -o $@ $^ 
 
 clean:
 	rm -f drbdadm_scanner.c

Modified: trunk/user/drbdadm_main.c
===================================================================
--- trunk/user/drbdadm_main.c	2004-07-24 18:51:43 UTC (rev 1454)
+++ trunk/user/drbdadm_main.c	2004-07-26 16:07:43 UTC (rev 1455)
@@ -776,7 +776,8 @@
     }
   }
 
-  printf("\nVersion: "REL_VERSION" (api:%d)\n",API_VERSION);
+  printf("\nVersion: "REL_VERSION" (api:%d)\n%s\n",
+		  API_VERSION, drbd_buildtag());
 
   exit(E_usage);
 }

Modified: trunk/user/drbdsetup.c
===================================================================
--- trunk/user/drbdsetup.c	2004-07-24 18:51:43 UTC (rev 1454)
+++ trunk/user/drbdsetup.c	2004-07-26 16:07:43 UTC (rev 1455)
@@ -371,7 +371,8 @@
     if(i < ARRY_SIZE(dh_names)-1) printf(",");
   }
 
-  printf("\n\nVersion: "REL_VERSION" (api:%d)\n",API_VERSION);
+  printf("\n\nVersion: "REL_VERSION" (api:%d)\n%s\n",
+		  API_VERSION, drbd_buildtag());
   if (addinfo)
       printf("\n%s\n",addinfo);