--- Begin Message ---
Subject: |
[ac02f3a7] fails to build without HAVE_WINDOW_SYSTEM |
Date: |
Mon, 03 Mar 2014 19:29:39 +0000 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) |
Package: emacs
As of ac02f3a7, Emacs fails to build with the following error.
gcc -std=gnu99 -c -Demacs -I. -I../../src -I../lib -I../../src/../lib
-isystem /usr/include/libxml2 -MMD -MF deps/font.d -MP -isystem
/usr/include/p11-kit-1 -pthread -isystem /usr/include/glib-2.0 -isystem
/usr/lib/x86_64-linux-gnu/glib-2.0/include -W -Wabi -Waddress
-Waggressive-loop-optimizations -Wall -Warray-bounds -Wattributes
-Wbuiltin-macro-redefined -Wcast-align -Wchar-subscripts -Wclobbered -Wcomment
-Wcomments -Wcoverage-mismatch -Wcpp -Wdeprecated -Wdeprecated-declarations
-Wdisabled-optimization -Wdiv-by-zero -Wdouble-promotion -Wempty-body
-Wendif-labels -Wenum-compare -Wextra -Wformat-contains-nul -Wformat-extra-args
-Wformat-security -Wformat-y2k -Wformat-zero-length -Wfree-nonheap-object
-Wignored-qualifiers -Wimplicit -Wimplicit-function-declaration -Wimplicit-int
-Winit-self -Wint-to-pointer-cast -Winvalid-memory-model -Winvalid-pch -Wmain
-Wmaybe-uninitialized -Wmissing-braces -Wmissing-declarations
-Wmissing-include-dirs -Wmissing-parameter-type -Wmissing-prototypes
-Wmultichar -Wnarrowing -Wnonnull -Wnormalized=nfc -Wold-style-declaration
-Wold-style-definition -Woverflow -Woverride-init -Wpacked
-Wpacked-bitfield-compat -Wparentheses -Wpointer-arith -Wpointer-sign
-Wpointer-to-int-cast -Wpragmas -Wreturn-local-addr -Wreturn-type
-Wsequence-point -Wsizeof-pointer-memaccess -Wstrict-aliasing
-Wstrict-prototypes -Wsuggest-attribute=format -Wtrampolines -Wtrigraphs
-Wuninitialized -Wunknown-pragmas -Wunused -Wunused-but-set-parameter
-Wunused-but-set-variable -Wunused-function -Wunused-label
-Wunused-local-typedefs -Wunused-macros -Wunused-result -Wunused-value
-Wunused-variable -Wvarargs -Wvariadic-macros -Wvector-operation-performance
-Wvolatile-register-var -Wwrite-strings -fdiagnostics-show-option
-funit-at-a-time -Wno-missing-field-initializers -Wno-sign-compare
-Wno-type-limits -Wno-switch -Wno-unused-parameter -Wno-format-nonliteral
-Wno-logical-op -Wno-unused-variable -Wno-unused-but-set-variable
-Wno-unused-but-set-parameter -Werror -g3 -O2 ../../src/font.c
../../src/font.c: In function 'Fframe_font_cache':
../../src/font.c:4853:3: error: implicit declaration of function
'FRAME_DISPLAY_INFO' [-Werror=implicit-function-declaration]
return FRAME_DISPLAY_INFO (decode_live_frame (frame))->name_list_element;
^
../../src/font.c:4853:56: error: invalid type argument of '->' (have 'int')
return FRAME_DISPLAY_INFO (decode_live_frame (frame))->name_list_element;
^
../../src/font.c:4854:1: error: control reaches end of non-void function
[-Werror=return-type]
}
^
cc1: all warnings being treated as errors
make[1]: *** [font.o] Error 1
As all the other invocations of FRAME_DISPLAY_INFO () seem to be
guarded with #ifdef HAVE_WINDOW_SYSTEM, I’d rather assume that
the whole DEFUN ("frame-font-cache", …) should also be within
such guards, along with the reference to Sframe_font_cache
within syms_of_font ().
--
FSF associate member #7257
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#16930: [ac02f3a7] fails to build without HAVE_WINDOW_SYSTEM |
Date: |
Mon, 03 Mar 2014 22:02:34 +0200 |
> From: Ivan Shmakov <address@hidden>
> Date: Mon, 03 Mar 2014 19:29:39 +0000
>
> ../../src/font.c: In function 'Fframe_font_cache':
> ../../src/font.c:4853:3: error: implicit declaration of function
> 'FRAME_DISPLAY_INFO' [-Werror=implicit-function-declaration]
> return FRAME_DISPLAY_INFO (decode_live_frame (frame))->name_list_element;
> ^
> ../../src/font.c:4853:56: error: invalid type argument of '->' (have 'int')
> return FRAME_DISPLAY_INFO (decode_live_frame (frame))->name_list_element;
> ^
> ../../src/font.c:4854:1: error: control reaches end of non-void function
> [-Werror=return-type]
> }
> ^
> cc1: all warnings being treated as errors
> make[1]: *** [font.o] Error 1
Should be fixed now (trunk revision 116646).
> As all the other invocations of FRAME_DISPLAY_INFO () seem to be
> guarded with #ifdef HAVE_WINDOW_SYSTEM, I’d rather assume that
> the whole DEFUN ("frame-font-cache", …) should also be within
> such guards, along with the reference to Sframe_font_cache
> within syms_of_font ().
No, it's not enough to #ifdef away that function when
HAVE_WINDOW_SYSTEM is not defined, because if HAVE_WINDOW_SYSTEM _is_
defined, you can still call the function for a TTY frame.
In general, one has always think about multi-tty when handling such
issues: a build that supports window-system can have frames that
don't. It's no longer a compile-time issue.
--- End Message ---