Skip to content

Commit 5b82ffc

Browse files
committed
include config.h in all sources
After we've been hit by Large File Support problems several times in the past week (which only occur on 32 bit platforms, which I don't have), this is yet another attempt to fix the issue.
1 parent 8068fd5 commit 5b82ffc

File tree

212 files changed

+329
-65
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

212 files changed

+329
-65
lines changed

Makefile.am

+1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ src_mpd_LDADD = $(MPD_LIBS) \
2929
$(GLIB_LIBS)
3030

3131
mpd_headers = \
32+
src/check.h \
3233
src/notify.h \
3334
src/ack.h \
3435
src/audio.h \

configure.ac

+3
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,9 @@ dnl libc features
101101
dnl
102102

103103
AC_SYS_LARGEFILE
104+
if test x$enable_largefile != xno; then
105+
AC_DEFINE([ENABLE_LARGEFILE], 1, [Define if large file support is enabled])
106+
fi
104107

105108
AC_CHECK_FUNCS(daemon fork syslog)
106109
if test $ac_cv_func_syslog = no; then

scripts/check_config_h.rb

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#!/usr/bin/env ruby
2+
#
3+
# This script verifies that every source includes config.h first.
4+
# This is very important for consistent Large File Support.
5+
#
6+
7+
def check_file(file)
8+
first = true
9+
file.each_line do |line|
10+
if line =~ /^\#include\s+(\S+)/ then
11+
if $1 == '"config.h"'
12+
unless first
13+
puts "#{file.path}: config.h included too late"
14+
end
15+
else
16+
if first
17+
puts "#{file.path}: config.h missing"
18+
end
19+
end
20+
first = false
21+
end
22+
end
23+
end
24+
25+
def check_path(path)
26+
File.open(path) do |file|
27+
check_file(file)
28+
end
29+
end
30+
31+
if ARGV.empty?
32+
Dir["src/*.c"].each do |path|
33+
check_path(path)
34+
end
35+
36+
Dir["src/*/*.c"].each do |path|
37+
check_path(path)
38+
end
39+
40+
Dir["test/*.c"].each do |path|
41+
check_path(path)
42+
end
43+
else
44+
ARGV.each do |path|
45+
check_path(path)
46+
end
47+
end

src/archive/bz2_plugin.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@
2121
* single bz2 archive handling (requires libbz2)
2222
*/
2323

24+
#include "config.h"
2425
#include "archive_api.h"
2526
#include "input_plugin.h"
26-
#include "config.h"
2727

2828
#include <stdint.h>
2929
#include <stddef.h>

src/archive/iso_plugin.c

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
* iso archive handling (requires cdio, and iso9660)
2222
*/
2323

24+
#include "config.h"
2425
#include "archive_api.h"
2526
#include "input_plugin.h"
2627

src/archive/zip_plugin.c

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
* zip archive handling (requires zziplib)
2222
*/
2323

24+
#include "config.h"
2425
#include "archive_api.h"
2526
#include "archive_api.h"
2627
#include "input_plugin.h"

src/archive_list.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@
1717
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
1818
*/
1919

20+
#include "config.h"
2021
#include "archive_list.h"
2122
#include "archive_api.h"
2223
#include "utils.h"
23-
#include "config.h"
2424

2525
#include <string.h>
2626
#include <glib.h>

src/audio.c

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
1818
*/
1919

20+
#include "config.h"
2021
#include "audio.h"
2122
#include "audio_format.h"
2223
#include "audio_parser.h"

src/audio_parser.c

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
*
2323
*/
2424

25+
#include "config.h"
2526
#include "audio_parser.h"
2627
#include "audio_format.h"
2728

src/buffer.c

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
1818
*/
1919

20+
#include "config.h"
2021
#include "buffer.h"
2122
#include "chunk.h"
2223
#include "poison.h"

src/check.h

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
/*
2+
* Copyright (C) 2003-2009 The Music Player Daemon Project
3+
* http://www.musicpd.org
4+
*
5+
* This program is free software; you can redistribute it and/or modify
6+
* it under the terms of the GNU General Public License as published by
7+
* the Free Software Foundation; either version 2 of the License, or
8+
* (at your option) any later version.
9+
*
10+
* This program is distributed in the hope that it will be useful,
11+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13+
* GNU General Public License for more details.
14+
*
15+
* You should have received a copy of the GNU General Public License along
16+
* with this program; if not, write to the Free Software Foundation, Inc.,
17+
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18+
*/
19+
20+
#ifndef MPD_CHECK_H
21+
#define MPD_CHECK_H
22+
23+
/*
24+
* All sources must include config.h on the first line to ensure that
25+
* Large File Support is configured properly. This header checks
26+
* whether this has happened.
27+
*
28+
* Usage: include this header before you use any of the above types.
29+
* It will stop the compiler if something went wrong.
30+
*
31+
* This is Linux/glibc specific, and only enabled in the debug build,
32+
* so bugs in this headers don't affect users with production builds.
33+
*
34+
*/
35+
36+
#ifndef PACKAGE_VERSION
37+
#error config.h missing
38+
#endif
39+
40+
#if defined(__linux__) && !defined(NDEBUG) && defined(ENABLE_LARGEFILE) && \
41+
defined(_FEATURES_H) && defined(__i386__) && \
42+
!defined(__USE_FILE_OFFSET64)
43+
/* on i386, check if LFS is enabled */
44+
#error config.h was included too late
45+
#endif
46+
47+
#endif

src/chunk.c

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
1818
*/
1919

20+
#include "config.h"
2021
#include "chunk.h"
2122
#include "audio_format.h"
2223
#include "tag.h"

src/client.c

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
1818
*/
1919

20+
#include "config.h"
2021
#include "client_internal.h"
2122

2223
bool client_is_expired(const struct client *client)

src/client_event.c

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
1818
*/
1919

20+
#include "config.h"
2021
#include "client_internal.h"
2122
#include "main.h"
2223

src/client_expire.c

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
1818
*/
1919

20+
#include "config.h"
2021
#include "client_internal.h"
2122

2223
static guint expire_source_id;

src/client_global.c

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
1818
*/
1919

20+
#include "config.h"
2021
#include "client_internal.h"
2122
#include "conf.h"
2223

src/client_idle.c

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
1818
*/
1919

20+
#include "config.h"
2021
#include "client_internal.h"
2122
#include "idle.h"
2223

src/client_list.c

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
1818
*/
1919

20+
#include "config.h"
2021
#include "client_internal.h"
2122

2223
#include <assert.h>

src/client_new.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@
1717
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
1818
*/
1919

20+
#include "config.h"
2021
#include "client_internal.h"
2122
#include "fifo_buffer.h"
2223
#include "socket_util.h"
2324
#include "permission.h"
24-
#include "config.h"
2525

2626
#include <assert.h>
2727
#include <unistd.h>

src/client_process.c

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
1818
*/
1919

20+
#include "config.h"
2021
#include "client_internal.h"
2122

2223
#include <string.h>

src/client_read.c

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
1818
*/
1919

20+
#include "config.h"
2021
#include "client_internal.h"
2122
#include "fifo_buffer.h"
2223

src/client_write.c

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
1818
*/
1919

20+
#include "config.h"
2021
#include "client_internal.h"
2122

2223
#include <assert.h>

src/cmdline.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@
1717
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
1818
*/
1919

20+
#include "config.h"
2021
#include "cmdline.h"
2122
#include "path.h"
2223
#include "log.h"
2324
#include "conf.h"
2425
#include "decoder_list.h"
2526
#include "decoder_plugin.h"
26-
#include "config.h"
2727
#include "output_list.h"
2828
#include "ls.h"
2929

src/command.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
1818
*/
1919

20+
#include "config.h"
2021
#include "command.h"
2122
#include "player_control.h"
2223
#include "playlist.h"
@@ -47,7 +48,6 @@
4748
#include "path.h"
4849
#include "replay_gain.h"
4950
#include "idle.h"
50-
#include "config.h"
5151

5252
#ifdef ENABLE_SQLITE
5353
#include "sticker.h"

src/compress.c

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
* Imported from AudioCompress by J. Shagam <[email protected]>
2222
*/
2323

24+
#include "config.h"
2425
#include "compress.h"
2526

2627
#include <glib.h>

src/conf.c

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
1818
*/
1919

20+
#include "config.h"
2021
#include "conf.h"
2122
#include "utils.h"
2223
#include "tokenizer.h"

src/crossfade.c

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
1818
*/
1919

20+
#include "config.h"
2021
#include "crossfade.h"
2122
#include "pcm_mix.h"
2223
#include "chunk.h"

src/cue/cue_tag.c

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
#include "config.h"
12
#include "cue_tag.h"
23

34
static struct tag*

src/cue/cue_tag.h

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
#ifndef MPD_CUE_TAG_H
22
#define MPD_CUE_TAG_H
33

4-
#include "config.h"
4+
#include "check.h"
55

66
#ifdef HAVE_CUE /* libcue */
77

8+
#include "tag.h"
9+
810
#include <libcue/libcue.h>
9-
#include "../tag.h"
1011

1112
struct tag*
1213
cue_tag_file( FILE*,

src/database.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
1818
*/
1919

20+
#include "config.h"
2021
#include "database.h"
2122
#include "directory.h"
2223
#include "directory_save.h"
@@ -26,7 +27,6 @@
2627
#include "text_file.h"
2728
#include "tag.h"
2829
#include "tag_internal.h"
29-
#include "config.h"
3030

3131
#include <glib.h>
3232

src/dbUtils.c

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
1818
*/
1919

20+
#include "config.h"
2021
#include "dbUtils.h"
2122
#include "locate.h"
2223
#include "directory.h"

src/decoder/.#flac_plugin.c

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
max@woodpecker.roonstrasse.net.11431:1257744648

src/decoder/_flac_common.c

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
* Common data structures and functions used by FLAC and OggFLAC
2222
*/
2323

24+
#include "config.h"
2425
#include "_flac_common.h"
2526
#include "flac_metadata.h"
2627
#include "flac_pcm.h"

src/decoder/_ogg_common.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
* Common functions used for Ogg data streams (Ogg-Vorbis and OggFLAC)
2222
*/
2323

24+
#include "config.h"
2425
#include "_ogg_common.h"
25-
#include "../utils.h"
2626

2727
ogg_stream_type ogg_stream_type_detect(struct input_stream *inStream)
2828
{

src/decoder/_ogg_common.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
#ifndef MPD_OGG_COMMON_H
2525
#define MPD_OGG_COMMON_H
2626

27-
#include "../decoder_api.h"
27+
#include "decoder_api.h"
2828

2929
typedef enum _ogg_stream_type { VORBIS, FLAC } ogg_stream_type;
3030

0 commit comments

Comments
 (0)