Bug 183097 - www/w3m does not compile with clang on 9.2-RELEASE
Summary: www/w3m does not compile with clang on 9.2-RELEASE
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: MANTANI Nobutaka
Depends on:
Reported: 2013-10-19 09:20 UTC by Guillaume Bibaut
Modified: 2013-10-23 00:20 UTC (History)
0 users

See Also:

mutt-patch (915 bytes, text/plain; charset=us-ascii)
2013-10-22 22:05 UTC, sean
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Guillaume Bibaut 2013-10-19 09:20:01 UTC
This port does not compile on my system.
I just did a portsnap fetch update and while upgrading my installed ports I encountered this problem.
My system is set to compile everything with clang (since in 10.0 there will be only clang by default).
Also it does not work in a poudriere jail that has been configured to do the same.

=======================<phase: build          >============================
===>  Building for w3m-0.5.3_2
(echo '#define DEFUN(x,y,z) x y'; sed -ne '/^DEFUN/{p;n;/^[     ]/p;}' ./main.c ./menu.c) | clang-cpp - |  awk '$1 ~ /^[_A-Za-z]/ {  for (i=2;i<=NF;i++) { print $i, $1}  }' > funcname.tab.tmp
funcname.tab updated
sort funcname.tab | /usr/bin/awk -f ./funcname1.awk > funcname1.h
clang  -I. -I. -O2 -pipe -fno-strict-aliasing -I./libwc  -I/usr/include/openssl -I/usr/local/include -I/usr/local/include -DHAVE_CONFIG_H -DAUXBIN_DIR=\"/usr/local/libexec/w3m\"  -DCGIBIN_DIR=\"/usr/local/libexec/w3m/cgi-bin\" -DHELP_DIR=\"/usr/local/share/w3m\"  -DETC_DIR=\"/usr/local/etc\" -DCONF_DIR=\"/usr/local/etc/w3m\"  -DRC_DIR=\"~/.w3m\"  -DLOCALEDIR=\"/usr/local/share/locale\" -c main.c
main.c:836:23: error: assigning to 'GC_warn_proc' (aka 'void (*)(char *, GC_word)') from incompatible type 'void'
    orig_GC_warn_proc = GC_set_warn_proc(wrap_GC_warn_proc);
                      ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.c:2264:37: warning: incompatible pointer types passing 'char **' to parameter of type 'wc_uchar **' (aka 'unsigned char **') [-Wincompatible-pointer-types]
    return wc_any_to_ucs(wtf_parse1(&p));
./libwc/wtf.h:71:41: note: passing argument to parameter 'p' here
extern wc_wchar_t wtf_parse1(wc_uchar **p);
1 warning and 1 error generated.
*** [main.o] Error code 1

Stop in /wrkdirs/usr/ports/www/w3m/work/w3m-0.5.3.
*** [do-build] Error code 1

Stop in /usr/ports/www/w3m.
===>  Cleaning for w3m-0.5.3_2
build of /usr/ports/www/w3m ended at Sat Oct 19 10:05:06 CEST 2013

How-To-Repeat: set clang as the default compile in /etc/make.conf


try to compile www/w3m
Comment 1 Edwin Groothuis freebsd_committer 2013-10-19 09:20:15 UTC
Responsible Changed
From-To: freebsd-ports-bugs->nobutaka

Over to maintainer (via the GNATS Auto Assign Tool)
Comment 2 kaltheat 2013-10-19 23:40:44 UTC

I observe similiar issue on 9.2-RELEASE without clang.

===>  Building for w3m-0.5.3_2
(echo '#define DEFUN(x,y,z) x y'; sed -ne '/^DEFUN/{p;n;/^[     ]/p;}' ./main.c ./menu.c) | cpp - |  awk '$1 ~ /^[_A-Za-z]/ {  for (i=2;i<=NF;i++) { print $i, $1}  }' > funcname.tab.tmp
funcname.tab updated
sort funcname.tab | /usr/bin/awk -f ./funcname1.awk > funcname1.h
cc  -I. -I. -O2 -pipe -fno-strict-aliasing -I./libwc  -I/usr/include/openssl -I/usr/local/include -I/usr/local/include -DHAVE_CONFIG_H -DAUXBIN_DIR=\"/usr/local/libexec/w3m\"  -DCGIBIN_DIR=\"/usr/local/libexec/w3m/cgi-bin\" -DHELP_DIR=\"/usr/local/share/w3m\"  -DETC_DIR=\"/usr/local/etc\" -DCONF_DIR=\"/usr/local/etc/w3m\"  -DRC_DIR=\"~/.w3m\"  -DLOCALEDIR=\"/usr/local/share/locale\" -c main.c
main.c: In function 'main':
main.c:836: error: void value not ignored as it ought to be
main.c: In function 'getChar':
main.c:2264: warning: passing argument 1 of 'wtf_parse1' from incompatible pointer type
*** [main.o] Error code 1

Stop in /usr/ports/www/w3m/work/w3m-0.5.3.

I'm using ports from svn head repo at revision 330856.

Comment 3 kaltheat 2013-10-20 11:10:50 UTC
same problem in clean tinderbox environment, again without clang and with FreeBSD 9.2-RELEASE
Comment 4 sean 2013-10-22 22:05:55 UTC

I attached a patch that fixes the build

I did not write the patch, I got it from here  http://sourceforge.net/p/w3m/patches/59/

kaltheat and Guillaume Bibaut would you mind testing this as well so we
can get this in as soon as possible? 
Comment 5 MANTANI Nobutaka freebsd_committer 2013-10-22 23:45:38 UTC
State Changed
From-To: open->closed

Fixed, thanks!
Comment 6 dfilter service freebsd_committer 2013-10-22 23:46:02 UTC
Author: nobutaka
Date: Tue Oct 22 22:45:00 2013
New Revision: 331336
URL: http://svnweb.freebsd.org/changeset/ports/331336

  Fix build error.
  PR:	ports/183097, ports/183156
  Submitted by:	Guillaume Bibaut <yom@iaelu.net>, Oliver Fromme <oliver.fromme@secnetix.de>

  head/www/w3m/files/patch-main.c   (contents, props changed)

Added: head/www/w3m/files/patch-main.c
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/w3m/files/patch-main.c	Tue Oct 22 22:45:00 2013	(r331336)
@@ -0,0 +1,13 @@
+--- main.c.old	2007-05-31 06:49:50.000000000 +0530
++++ main.c	2010-02-16 16:16:24.000000000 +0530
+@@ -842,7 +842,9 @@
+     mySignal(SIGPIPE, SigPipe);
+ #endif
+-    orig_GC_warn_proc = GC_set_warn_proc(wrap_GC_warn_proc);
++    orig_GC_warn_proc = GC_get_warn_proc();
++    GC_set_warn_proc(wrap_GC_warn_proc);
+     err_msg = Strnew();
+     if (load_argc == 0) {
+ 	/* no URL specified */
svn-ports-all@freebsd.org mailing list
To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
Comment 7 kaltheat 2013-10-23 00:17:03 UTC

Port compiles fine (in clean tinderbox-environment) with this patch.
w3m seems to work.