Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 28 Sep 2012 15:00:54 GMT
From:      Miklos Magyari <magyarimiki@gmail.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/172147: sysutils/isomd5sum build fails with clang
Message-ID:  <201209281500.q8SF0sPH038694@red.freebsd.org>
Resent-Message-ID: <201209281510.q8SFA3vE058879@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         172147
>Category:       ports
>Synopsis:       sysutils/isomd5sum build fails with clang
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Sep 28 15:10:02 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Miklos Magyari
>Release:        9.0-RELEASE
>Organization:
>Environment:
FreeBSD mira 9.0-RELEASE FreeBSD 9.0-RELEASE #0: Tue Jan  3 07:46:30 UTC 2012     root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  amd64
>Description:
Building sysutils/isomd5sum build fails with clang

# make clean all
===>  Cleaning for isomd5sum-1.0.4_1
===>  Extracting for isomd5sum-1.0.4_1
=> SHA256 Checksum OK for isomd5sum-1.0.4.tar.bz2.
===>  Patching for isomd5sum-1.0.4_1
===>  Applying FreeBSD patches for isomd5sum-1.0.4_1
===>   isomd5sum-1.0.4_1 depends on file: /usr/local/bin/python2.7 - found
===>   isomd5sum-1.0.4_1 depends on executable: gmake - found
===>   isomd5sum-1.0.4_1 depends on shared library: popt.0 - found
===>  Configuring for isomd5sum-1.0.4_1
===>  Building for isomd5sum-1.0.4_1
clang -c -O  -Wall -Werror -D_GNU_SOURCE=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 -D_LARGEFILE64_SOURCE=1 -fPIC -I/usr/local/include/python2.7 -I/usr/local/include -L/usr/local/lib -o implantisomd5.o implantisomd5.c
clang: error: argument unused during compilation: '-L/usr/local/lib'
gmake: *** [implantisomd5.o] Error 1
*** [do-build] Error code 1

Stop in /usr/ports/sysutils/isomd5sum.
*** [/usr/ports/sysutils/isomd5sum/work/.build_done.isomd5sum._usr_local] Error code 1

Stop in /usr/ports/sysutils/isomd5sum.


>How-To-Repeat:
cd /usr/ports/sysutils/isomd5sum
make


>Fix:
I have managed to compile after modifying two patchfiles under files/

# cat files/patch-Makefile
--- Makefile.orig       2008-02-08 05:30:07.000000000 +0100
+++ Makefile    2012-09-28 16:54:36.000000000 +0200
@@ -1,14 +1,14 @@
 PYVER  := $(shell python -c 'import sys; print sys.version[0:3]')
 PYTHON = python$(PYVER)
-PYTHONINCLUDE = /usr/include/$(PYTHON)
+PYTHONINCLUDE = ${PYTHON_INCLUDEDIR}

-ifneq (,$(filter ppc64 x86_64 s390x,$(shell uname -m)))
-LIBDIR = lib64
-else
+#ifneq (,$(filter ppc64 x86_64 s390x,$(shell uname -m)))
+#LIBDIR = lib64
+#else
 LIBDIR = lib
-endif
+#endif

-CFLAGS = $(RPM_OPT_FLAGS) -Wall -Werror -D_GNU_SOURCE=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 -D_LARGEFILE64_SOURCE=1 -fPIC -I$(PYTHONINCLUDE)
+CFLAGS = $(RPM_OPT_FLAGS) -Wall -Werror -D_GNU_SOURCE=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 -D_LARGEFILE64_SOURCE=1 -fPIC -I$(PYTHONINCLUDE) -I${LOCALBASE}/include

 OBJECTS = md5.o libimplantisomd5.o checkisomd5.o implantisomd5
 SOURCES = $(patsubst %.o,%.c,$(OBJECTS))
@@ -22,34 +22,34 @@
        $(CC) -c -O $(CFLAGS) -o $@ $<

 implantisomd5: implantisomd5.o libimplantisomd5.a
-       $(CC) -lpopt $(CFLAGS) implantisomd5.o libimplantisomd5.a -o implantisomd5
+       $(CC) -L${LOCALBASE}/lib -lpopt $(CFLAGS) implantisomd5.o libimplantisomd5.a -o implantisomd5

 checkisomd5: checkisomd5.o libcheckisomd5.a
-       $(CC) -lpopt $(CFLAGS) checkisomd5.o libcheckisomd5.a -o checkisomd5
+       $(CC) -L${LOCALBASE}/lib -lpopt $(CFLAGS) checkisomd5.o libcheckisomd5.a -o checkisomd5

 libimplantisomd5.a: libimplantisomd5.a(libimplantisomd5.o md5.o)

 libcheckisomd5.a: libcheckisomd5.a(libcheckisomd5.o md5.o)

 pyisomd5sum.so: $(PYOBJS)
-       $(CC) -shared -g -o pyisomd5sum.so -fpic $(PYOBJS) $(LDFLAGS)
+       $(CC) -shared -o pyisomd5sum.so -fpic $(PYOBJS) $(LDFLAGS)

 install: all
-       mkdir -p $(DESTDIR)/usr/$(LIBDIR)/$(PYTHON)/site-packages
-       mkdir -p $(DESTDIR)/usr/include
-       mkdir -p $(DESTDIR)/usr/bin
-       mkdir -p $(DESTDIR)/usr/share/man/man1
-       install -m 755 implantisomd5 $(DESTDIR)/usr/bin
-       install -m 755 checkisomd5 $(DESTDIR)/usr/bin
-       install -m 755 implantisomd5.1 $(DESTDIR)/usr/share/man/man1
-       install -m 755 checkisomd5.1 $(DESTDIR)/usr/share/man/man1
-       install -m 755 pyisomd5sum.so $(DESTDIR)/usr/$(LIBDIR)/$(PYTHON)/site-packages
+       mkdir -p $(PYTHONPREFIX_SITELIBDIR)
+       mkdir -p $(PREFIX)/include
+       mkdir -p $(PREFIX)/bin
+       mkdir -p $(PREFIX)/man/man1
+       install -m 755 implantisomd5 $(PREFIX)/bin
+       install -m 755 checkisomd5 $(PREFIX)/bin
+       install -m 755 implantisomd5.1 $(PREFIX)/man/man1
+       install -m 755 checkisomd5.1 $(PREFIX)/man/man1
+       install -m 755 pyisomd5sum.so $(PYTHONPREFIX_SITELIBDIR)
 #      ln -s ../../bin/implantisomd5 $(DESTDIR)/usr/lib/anaconda-runtime/implantisomd5
 #      ln -s ../../bin/checkisomd5 $(DESTDIR)/usr/lib/anaconda-runtime/checkisomd5
-       install -m 644 libimplantisomd5.h $(DESTDIR)/usr/include/
-       install -m 644 libcheckisomd5.h $(DESTDIR)/usr/include/
-       install -m 644 libimplantisomd5.a $(DESTDIR)/usr/$(LIBDIR)
-       install -m 644 libcheckisomd5.a $(DESTDIR)/usr/$(LIBDIR)
+       install -m 644 libimplantisomd5.h $(PREFIX)/include/
+       install -m 644 libcheckisomd5.h $(PREFIX)/include/
+       install -m 644 libimplantisomd5.a $(PREFIX)/$(LIBDIR)
+       install -m 644 libcheckisomd5.a $(PREFIX)/$(LIBDIR)

 clean:
        rm -f *.o *.so *.pyc *.a .depend *~


# cat files/patch-md5.c
--- md5.c.orig  2008-02-08 05:30:07.000000000 +0100
+++ md5.c       2012-09-28 16:54:40.000000000 +0200
@@ -20,13 +20,13 @@
  */

 #include <string.h>
-#include <endian.h>
+#include <sys/endian.h>
 #include "md5.h"

 void MD5_Transform(uint32 *buf, uint32 const *in);

-#define IS_BIG_ENDIAN() (__BYTE_ORDER == __BIG_ENDIAN)
-#define IS_LITTLE_ENDIAN() (__BYTE_ORDER == __LITTLE_ENDIAN)
+#define IS_BIG_ENDIAN() (_BYTE_ORDER == _BIG_ENDIAN)
+#define IS_LITTLE_ENDIAN() (_BYTE_ORDER == _LITTLE_ENDIAN)

 static void byteReverse(unsigned char *buf, unsigned longs);

@@ -157,7 +157,7 @@
        MD5_Transform(ctx->buf, (uint32 *) ctx->in);
        if (ctx->doByteReverse) byteReverse((unsigned char *) ctx->buf, 4);
        memcpy(digest, ctx->buf, 16);
-       memset(ctx, 0, sizeof(ctx));    /* In case it's sensitive */
+       memset(ctx, 0, sizeof(struct MD5Context));      /* In case it's sensitive */
 }

 #ifndef ASM_MD5

>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201209281500.q8SF0sPH038694>