Providing a global declaration without "extern" in a header adds a symbol with that name to every compilation unit that includes the header. Consequently, some compilers (e.g., clang) fail to link more than one of these compilation units because there are two versions of the "streaming" symbol. Fix this by moving the declaration to pcl.c and keeping changing the one in the header to be extern. Upstream-Status: Submitted [http://lists.gnu.org/archive/html/bug-barcode/2015-06/msg00001.html, https://github.com/Homebrew/homebrew/commit/3f0ebf6ba86cf0ca12c58c5122da744d95181082] --- ./barcode.h 2013-03-29 16:51:07.000000000 -0500 +++ ./barcode.h 2015-08-16 16:06:23.000000000 -0500 @@ -123,6 +123,6 @@ } #endif -int streaming; +extern int streaming; #endif /* _BARCODE_H_ */ --- ./pcl.c 2013-03-29 17:23:31.000000000 -0500 +++ ./pcl.c 2015-08-16 16:07:06.000000000 -0500 @@ -29,6 +29,7 @@ #define SHRINK_AMOUNT 0.15 /* shrink the bars to account for ink spreading */ +int streaming; /* * How do the "partial" and "textinfo" strings work? See file "ps.c"