public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Jeroen Roovers" <jer@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: net-libs/wvstreams/, net-libs/wvstreams/files/
Date: Wed,  8 Jul 2020 06:49:51 +0000 (UTC)	[thread overview]
Message-ID: <1594190984.3c19df3b0bb6925e5dedb19b1de028dea8a98d26.jer@gentoo> (raw)

commit:     3c19df3b0bb6925e5dedb19b1de028dea8a98d26
Author:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Tue Jul  7 21:20:43 2020 +0000
Commit:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Wed Jul  8 06:49:44 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3c19df3b

net-libs/wvstreams: Add llvm patch

Adapted from upstream commit 14f88faeccd9eaef8a9d4bd0e95b87745b8a54bb

Package-Manager: Portage-2.3.103, Repoman-2.3.23
Bug: https://bugs.gentoo.org/731200
Signed-off-by: Jeroen Roovers <jer <AT> gentoo.org>

 .../wvstreams/files/wvstreams-4.6.1_p14-llvm.patch | 412 +++++++++++++++++++++
 net-libs/wvstreams/wvstreams-4.6.1_p14-r1.ebuild   |   1 +
 2 files changed, 413 insertions(+)

diff --git a/net-libs/wvstreams/files/wvstreams-4.6.1_p14-llvm.patch b/net-libs/wvstreams/files/wvstreams-4.6.1_p14-llvm.patch
new file mode 100644
index 00000000000..156d198a440
--- /dev/null
+++ b/net-libs/wvstreams/files/wvstreams-4.6.1_p14-llvm.patch
@@ -0,0 +1,412 @@
+--- a/include/uniconf.h
++++ b/include/uniconf.h
+@@ -434,7 +434,7 @@
+  */
+ class UniConf::Iter : public UniConf::IterBase
+ {
+-    UniConfGen::Iter *it;
++    IUniConfGen::Iter *it;
+     
+ public:
+     /** Creates an iterator over the direct children of a branch. */
+@@ -465,7 +465,7 @@
+  */
+ class UniConf::RecursiveIter : public UniConf::IterBase
+ {
+-    UniConfGen::Iter *it;
++    IUniConfGen::Iter *it;
+ 
+ public:
+     /** Creates a recursive iterator over a branch. */
+--- a/include/uniconfgen.h
++++ b/include/uniconfgen.h
+@@ -153,8 +153,50 @@
+      */
+     virtual bool haschildren(const UniConfKey &key) = 0;
+ 
+-    /** The abstract iterator type (see below) */
+-    class Iter;
++    /**
++     * An abstract iterator over keys and values in a generator.
++     *
++     * Unlike other WvStreams iterators, this one declares virtual methods so
++     * that UniConfGen implementations can supply the right behaviour
++     * through a common interface that does not depend on static typing.
++     *
++     * The precise traversal sequence is defined by the iterator implementation.
++     *
++     * The iterator need not support concurrent modifications of the underlying
++     * data structures.
++     * 
++     * TODO: Consider changing this rule depending on observed usage patterns.
++     */
++    class Iter
++    {
++    public:
++        /** Destroys the iterator. */
++        virtual ~Iter() { }
++
++        /**
++         * Rewinds the iterator.
++         * Must be called prior to the first invocation of next().
++         */
++        virtual void rewind() = 0;
++
++        /**
++         * Seeks to the next element in the sequence.
++         * Returns true if that element exists.
++         * Must be called prior to the first invocation of key().
++         */
++        virtual bool next() = 0;
++
++        /** Returns the current key. */
++        virtual UniConfKey key() const = 0;
++        
++        /** 
++         * Returns the value of the current key.  You could just do a get(),
++         * but maybe your generator has a more efficient way.
++         */
++        virtual WvString value() const = 0;
++    };
++
++
+ 
+     /** A concrete null iterator type (see below) */
+     class NullIter;
+@@ -214,7 +256,7 @@
+ public:
+     /** Destroys the UniConfGen and may discard uncommitted data. */
+     virtual ~UniConfGen();
+-
++    
+     /***** Notification API *****/
+     
+     /**
+@@ -300,70 +342,28 @@
+ protected:
+     // A naive implementation of setv() that uses only set().
+     void setv_naive(const UniConfPairList &pairs);
+-};
+-
+-DeclareWvList(IUniConfGen);
+-DeclareWvList2(UniConfGenList, IUniConfGen);
+-
+ 
+-/**
+- * An abstract iterator over keys and values in a generator.
+- *
+- * Unlike other WvStreams iterators, this one declares virtual methods so
+- * that UniConfGen implementations can supply the right behaviour
+- * through a common interface that does not depend on static typing.
+- *
+- * The precise traversal sequence is defined by the iterator implementation.
+- *
+- * The iterator need not support concurrent modifications of the underlying
+- * data structures.
+- * 
+- * TODO: Consider changing this rule depending on observed usage patterns.
+- */
+-class UniConfGen::Iter
+-{
+ public:
+-    /** Destroys the iterator. */
+-    virtual ~Iter() { }
+-
+-    /**
+-     * Rewinds the iterator.
+-     * Must be called prior to the first invocation of next().
+-     */
+-    virtual void rewind() = 0;
+-
+     /**
+-     * Seeks to the next element in the sequence.
+-     * Returns true if that element exists.
+-     * Must be called prior to the first invocation of key().
+-     */
+-    virtual bool next() = 0;
+-
+-    /** Returns the current key. */
+-    virtual UniConfKey key() const = 0;
+-    
+-    /** 
+-     * Returns the value of the current key.  You could just do a get(),
+-     * but maybe your generator has a more efficient way.
++     * An iterator that's always empty.
++     * This is handy if you don't have anything good to iterate over.
+      */
+-    virtual WvString value() const = 0;
++    class NullIter : public UniConfGen::Iter
++    {
++    public:
++        /***** Overridden members *****/
++        
++        virtual void rewind() { }
++        virtual bool next() { return false; }
++        virtual UniConfKey key() const { return UniConfKey::EMPTY; }
++        virtual WvString value() const { return WvString(); }
++    };
+ };
+ 
++DeclareWvList(IUniConfGen);
++DeclareWvList2(UniConfGenList, IUniConfGen);
++
+ 
+-/**
+- * An iterator that's always empty.
+- * This is handy if you don't have anything good to iterate over.
+- */
+-class UniConfGen::NullIter : public UniConfGen::Iter
+-{
+-public:
+-    /***** Overridden members *****/
+-    
+-    virtual void rewind() { }
+-    virtual bool next() { return false; }
+-    virtual UniConfKey key() const { return UniConfKey::EMPTY; }
+-    virtual WvString value() const { return WvString(); }
+-};
+ 
+ 
+ #endif // __UNICONFGEN_H
+--- a/include/unifastregetgen.h
++++ b/include/unifastregetgen.h
+@@ -42,7 +42,6 @@
+     virtual bool haschildren(const UniConfKey &key);
+ 
+ private:
+-    IUniConfGen *inner;
+     UniConfValueTree *tree;
+     
+ protected:
+--- a/include/unifiltergen.h
++++ b/include/unifiltergen.h
+@@ -68,8 +68,8 @@
+     virtual bool exists(const UniConfKey &key);
+     virtual bool haschildren(const UniConfKey &key);
+     virtual bool isok();
+-    virtual Iter *iterator(const UniConfKey &key);
+-    virtual Iter *recursiveiterator(const UniConfKey &key);
++    virtual IUniConfGen::Iter *iterator(const UniConfKey &key);
++    virtual IUniConfGen::Iter *recursiveiterator(const UniConfKey &key);
+ 
+ protected:
+     /**
+--- a/include/unihashtree.h
++++ b/include/unihashtree.h
+@@ -62,10 +62,11 @@
+     UniHashTreeBase *xparent; /*!< the parent of this subtree */
+     Container *xchildren; /*!< the hash table of children */
+ 
+-private:
+     void _setparent(UniHashTreeBase *parent);
+     UniHashTreeBase *_root() const;
+ 
++private:
++
+     /** Called by a child to link itself to this node. */
+     void link(UniHashTreeBase *node);
+ 
+--- a/include/unimountgen.h
++++ b/include/unimountgen.h
+@@ -103,8 +103,8 @@
+     virtual void commit();
+     virtual bool refresh();
+     virtual void flush_buffers() { }
+-    virtual Iter *iterator(const UniConfKey &key);
+-    virtual Iter *recursiveiterator(const UniConfKey &key);
++    virtual IUniConfGen::Iter *iterator(const UniConfKey &key);
++    virtual IUniConfGen::Iter *recursiveiterator(const UniConfKey &key);
+ 
+ private:
+     /** Find the active generator for a given key. */
+--- a/include/wvmoniker.h
++++ b/include/wvmoniker.h
+@@ -72,7 +72,7 @@
+ 	// from IObject, which is very important. The 'for' avoids a
+ 	// warning.
+ 	for(IObject *silly = (T *)NULL; silly; )
+-            ;
++            silly = (T *)NULL;
+     };
+ };
+ 
+--- a/include/wvpushdir.h
++++ b/include/wvpushdir.h
+@@ -27,12 +27,11 @@
+ 
+     WvPushDir(WvStringParm new_dir)
+     {
+-#ifdef MACOS
+-       old_dir = static_cast<char *>(calloc(PATH_MAX, sizeof(char *)));
+-       getcwd(old_dir, PATH_MAX);;
+-#else
+-       old_dir = get_current_dir_name();
+-#endif
++        old_dir = new char[2048];
++        if (!getcwd(old_dir, 2048)) {
++            errnum = errno;
++            return;
++        }
+        dir_handle = opendir(old_dir);
+        if (chdir(new_dir) == -1)
+           errnum = errno;
+--- a/include/wvscatterhash.h
++++ b/include/wvscatterhash.h
+@@ -183,7 +183,7 @@
+         Iter(WvScatterHash &_table) : IterBase(_table) { }
+         Iter(const Iter &other) : IterBase(other) { }
+ 
+-        unsigned char *getstatus() { return &xstatus[index-1]; }
++        unsigned char *getstatus() { return &this->xstatus[index-1]; }
+ 
+         T *ptr() const
+             { return (T *)(get()); }
+--- a/include/wvserialize.h
++++ b/include/wvserialize.h
+@@ -60,6 +60,7 @@
+     return htons(i);
+ }
+ 
++#ifndef ntohll
+ /**
+  * Helper functions to convert 64 bit ints to and from host byteorder
+  */
+@@ -80,6 +81,7 @@
+     return (((uint64_t)htonl(n)) << 32) | htonl(n >> 32);
+ #endif
+ }
++#endif
+ 
+ /**
+  * A helper function that serializes different types of integers.  Since
+--- a/include/wvtask.h
++++ b/include/wvtask.h
+@@ -24,6 +24,7 @@
+ #include "wvstreamsdebugger.h"
+ #include "wvstringlist.h"
+ #include "setjmp.h"
++#define _XOPEN_SOURCE
+ #include <ucontext.h>
+ 
+ #define WVTASK_MAGIC 0x123678
+--- a/uniconf/unicachegen.cc
++++ b/uniconf/unicachegen.cc
+@@ -69,7 +69,7 @@
+ 
+ void UniCacheGen::loadtree(const UniConfKey &key)
+ {
+-    UniConfGen::Iter *i = inner->recursiveiterator(key);
++    IUniConfGen::Iter *i = inner->recursiveiterator(key);
+     if (!i) return;
+ 
+     //assert(false);
+--- a/uniconf/uniconfgen.cc
++++ b/uniconf/uniconfgen.cc
+@@ -104,7 +104,7 @@
+     
+     hold_delta();
+     
+-    Iter *it = iterator(key);
++    IUniConfGen::Iter *it = iterator(key);
+     if (it)
+     {
+ 	it->rewind();
+@@ -257,7 +257,7 @@
+ };
+ 
+ 
+-UniConfGen::Iter *UniConfGen::recursiveiterator(const UniConfKey &key)
++IUniConfGen::Iter *UniConfGen::recursiveiterator(const UniConfKey &key)
+ {
+     return new _UniConfGenRecursiveIter(this, key);
+ }
+--- a/uniconf/unifiltergen.cc
++++ b/uniconf/unifiltergen.cc
+@@ -134,7 +134,7 @@
+ }
+ 
+ 
+-UniConfGen::Iter *UniFilterGen::iterator(const UniConfKey &key)
++IUniConfGen::Iter *UniFilterGen::iterator(const UniConfKey &key)
+ {
+     UniConfKey mapped_key;
+     if (xinner && keymap(key, mapped_key))
+@@ -144,7 +144,7 @@
+ }
+ 
+ 
+-UniConfGen::Iter *UniFilterGen::recursiveiterator(const UniConfKey &key)
++IUniConfGen::Iter *UniFilterGen::recursiveiterator(const UniConfKey &key)
+ {
+     UniConfKey mapped_key;
+     if (xinner && keymap(key, mapped_key))
+--- a/uniconf/unifstreegen.cc
++++ b/uniconf/unifstreegen.cc
+@@ -62,7 +62,7 @@
+ 	log("Key '%s' not found.\n", key);
+     }
+     
+-    virtual Iter *recursiveiterator(const UniConfKey &key)
++    virtual IUniConfGen::Iter *recursiveiterator(const UniConfKey &key)
+     {
+ 	// don't try to optimize this like UniMountGen does, because we're
+ 	// going to mount things *as* we iterate through them, not sooner.
+--- a/uniconf/unimountgen.cc
++++ b/uniconf/unimountgen.cc
+@@ -305,7 +305,7 @@
+     return strcmp(*l, *r);
+ }
+ 
+-UniMountGen::Iter *UniMountGen::iterator(const UniConfKey &key)
++IUniConfGen::Iter *UniMountGen::iterator(const UniConfKey &key)
+ {
+     UniGenMount *found = findmount(key);
+     if (found)
+@@ -345,7 +345,7 @@
+ // FIXME: this function will be rather slow if you try to iterate over multiple
+ // generators and the latency level is high (as is the case with e.g.: the tcp generator). 
+ // the fast path will only kick in if you iterate over a single generator.
+-UniMountGen::Iter *UniMountGen::recursiveiterator(const UniConfKey &key)
++IUniConfGen::Iter *UniMountGen::recursiveiterator(const UniConfKey &key)
+ {
+     UniGenMount *found = findmountunder(key);
+     if (found)
+--- a/utils/t/wvpushdir.t.cc
++++ b/utils/t/wvpushdir.t.cc
+@@ -15,14 +15,9 @@
+ 
+     WVPASS(newpushdir.isok());
+ 
+-#ifdef MACOS
+-    char *pwd = static_cast<char *>(calloc(PATH_MAX,sizeof(char *)));
+-    getcwd(pwd,PATH_MAX);
+-#else
+-    char *pwd =  get_current_dir_name();
+-#endif
++    char pwd[1024] = "";
++    getcwd(pwd, sizeof(pwd));
+     WVPASSEQ(pwd, dir);
+-    free(pwd);
+ 
+     unlink(dir);
+ }
+--- a/utils/wvpam.cc
++++ b/utils/wvpam.cc
+@@ -5,6 +5,7 @@
+  * A WvStream that authenticates with PAM before allowing any reading or
+  * writing.  See wvpam.h.
+  */
++#include <pwd.h>
+ #include "wvlog.h"
+ #include "wvpam.h"
+ #include "wvautoconf.h"
+--- a/xplc/modulemgr.cc
++++ b/xplc/modulemgr.cc
+@@ -23,6 +23,7 @@
+ #include <assert.h>
+ #include "modulemgr.h"
+ #include <xplc/IModuleLoader.h>
++#include <unistd.h>
+ 
+ #include "config.h"
+ 

diff --git a/net-libs/wvstreams/wvstreams-4.6.1_p14-r1.ebuild b/net-libs/wvstreams/wvstreams-4.6.1_p14-r1.ebuild
index 1042923f522..06f36322819 100644
--- a/net-libs/wvstreams/wvstreams-4.6.1_p14-r1.ebuild
+++ b/net-libs/wvstreams/wvstreams-4.6.1_p14-r1.ebuild
@@ -44,6 +44,7 @@ PATCHES=(
 	"${FILESDIR}"/${PN}-4.6.1-parallel-make.patch
 	"${FILESDIR}"/${PN}-4.6.1-_DEFAULT_SOURCE.patch
 	"${FILESDIR}"/${PN}-4.6.1_p14-xplc-module.patch
+	"${FILESDIR}"/${PN}-4.6.1_p14-llvm.patch
 )
 S=${WORKDIR}/${P/_p*}
 


             reply	other threads:[~2020-07-08  6:49 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-08  6:49 Jeroen Roovers [this message]
  -- strict thread matches above, loose matches on Subject: below --
2020-07-08  6:49 [gentoo-commits] repo/gentoo:master commit in: net-libs/wvstreams/, net-libs/wvstreams/files/ Jeroen Roovers
2018-12-18  3:09 Craig Andrews
2018-11-03 14:04 Jeroen Roovers

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1594190984.3c19df3b0bb6925e5dedb19b1de028dea8a98d26.jer@gentoo \
    --to=jer@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox