summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dev-util/bbe/bbe-0.2.2-r1.ebuild14
-rw-r--r--dev-util/bbe/files/bbe-0.2.2-inline.patch133
2 files changed, 138 insertions, 9 deletions
diff --git a/dev-util/bbe/bbe-0.2.2-r1.ebuild b/dev-util/bbe/bbe-0.2.2-r1.ebuild
index 63a113fdda81..8a6bbbb6e014 100644
--- a/dev-util/bbe/bbe-0.2.2-r1.ebuild
+++ b/dev-util/bbe/bbe-0.2.2-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -14,17 +14,13 @@ SLOT="0"
KEYWORDS="amd64 ~arm x86 ~amd64-linux ~x86-linux"
IUSE=""
+PATCHES=(
+ "${FILESDIR}"/bbe-0.2.2-inline.patch
+)
+
src_prepare() {
default
sed -i -e '/^htmldir/d' doc/Makefile.am || die
- eaclocal
eautoreconf
}
-
-src_configure() {
- # Avoid linking problems, bug #750545.
- replace-flags -Os -O2
-
- default
-}
diff --git a/dev-util/bbe/files/bbe-0.2.2-inline.patch b/dev-util/bbe/files/bbe-0.2.2-inline.patch
new file mode 100644
index 000000000000..4429e01ed483
--- /dev/null
+++ b/dev-util/bbe/files/bbe-0.2.2-inline.patch
@@ -0,0 +1,133 @@
+Let's not bother trying to inline these -- the compiler is smart enough
+to do it if it wants to. They're not defined correctly right now if
+we wanted to keep them inline and this is far simpler.
+--- a/src/bbe.h
++++ b/src/bbe.h
+@@ -167,10 +167,10 @@ set_input_file(char *file);
+ extern void
+ init_buffer();
+
+-extern inline unsigned char
++extern unsigned char
+ read_byte();
+
+-extern inline int
++extern int
+ get_next_byte();
+
+ extern void
+@@ -179,16 +179,16 @@ mark_block_end();
+ extern int
+ find_block();
+
+-extern inline int
++extern int
+ last_byte();
+
+ extern void
+ write_buffer(unsigned char *buf,off_t length);
+
+-extern inline void
++extern void
+ put_byte(unsigned char byte);
+
+-extern inline void
++extern void
+ write_next_byte();
+
+ extern void
+@@ -215,10 +215,10 @@ write_string(char *string);
+ extern char *
+ get_current_file(void);
+
+-extern inline unsigned char *
++extern unsigned char *
+ read_pos();
+
+-extern inline unsigned char *
++extern unsigned char *
+ block_end_pos();
+
+ extern char *
+--- a/src/buffer.c
++++ b/src/buffer.c
+@@ -191,21 +191,21 @@ read_input_stream()
+ }
+
+ /* reads byte from the buffer */
+-inline unsigned char
++unsigned char
+ read_byte()
+ {
+ return *in_buffer.read_pos;
+ }
+
+ /* returns pointer to the read position */
+-inline unsigned char *
++unsigned char *
+ read_pos()
+ {
+ return in_buffer.read_pos;
+ }
+
+ /* return the block end pointer */
+-inline unsigned char *
++unsigned char *
+ block_end_pos()
+ {
+ return in_buffer.block_end;
+@@ -214,7 +214,7 @@ block_end_pos()
+ /* advances the read pointer, if buffer has reached low water, get more from stream to buffer */
+ /* returns false in case of end of stream */
+
+-inline int
++int
+ get_next_byte()
+ {
+ if(in_buffer.read_pos >= in_buffer.low_pos)
+@@ -335,14 +335,14 @@ mark_block_end()
+ }
+
+ /* returns true if current byte is last in block */
+-inline int
++int
+ last_byte()
+ {
+ return in_buffer.block_end == in_buffer.read_pos;
+ }
+
+ /* returns true if end of stream has been reached */
+-inline int
++int
+ end_of_stream()
+ {
+ if(in_buffer.stream_end != NULL && in_buffer.stream_end == in_buffer.read_pos)
+@@ -487,7 +487,7 @@ write_buffer(unsigned char *buf,off_t length)
+ }
+
+ /* put_byte, put one byte att current write position */
+-inline void
++void
+ put_byte(unsigned char byte)
+ {
+ *out_buffer.write_pos = byte;
+@@ -495,7 +495,7 @@ put_byte(unsigned char byte)
+
+ /* next_byte, advance the write pointer by one */
+ /* if buffer full write it to disk */
+-inline void
++void
+ write_next_byte()
+ {
+ out_buffer.write_pos++;
+--- a/src/execute.c
++++ b/src/execute.c
+@@ -677,7 +677,7 @@ close_commands(struct commands *commands)
+ }
+
+ /* reset the rpos counter for next block, in case block was shorter eg. delete count */
+-inline void
++void
+ reset_rpos(struct command_list *c)
+ {
+ while(c != NULL)