Giter Site home page Giter Site logo

pupnp / pupnp Goto Github PK

View Code? Open in Web Editor NEW
349.0 27.0 114.0 10.04 MB

libupnp: Build UPnP-compliant control points, devices, and bridges on several operating systems.

Home Page: https://pupnp.github.io/pupnp

License: BSD 3-Clause "New" or "Revised" License

Shell 0.21% C 90.53% C++ 1.61% HTML 1.11% Makefile 0.47% M4 3.92% CMake 1.91% QMake 0.03% Python 0.12% JavaScript 0.01% CSS 0.07%
upnp-library upnp c library xml ssdp dlna sdk

pupnp's Introduction

The Portable SDK for UPnP* Devices (libupnp)

branch status
main (use 1.14.x) master
branch-1.14.x 1.14.x
branch-1.12.x 1.12.x
branch-1.10.x 1.10.x
branch-1.8.x 1.8.x
branch-1.6.x 1.6.x
branch-1.4.x 1.4.x

Copyright (c) 2000-2003 Intel Corporation - All Rights Reserved.

Copyright (c) 2005-2006 Rémi Turboult [email protected]

Copyright (c) 2006 Michel Pfeiffer and others [email protected]

See LICENSE for details.

Table of Contents

1. Overview

The Portable SDK for UPnP™ Devices is an SDK for development of UPnP device and control point applications. It consists of the core UPnP protocols along with a UPnP-specific eXtensible Markup Language (XML) parser supporting the Document Object Model (DOM) Level 2 API and an optional, integrated mini web server for serving UPnP related documents. It provides developers with an API and open source code for building control points, devices, and bridges that are compliant with Version 1.0 of the Universal Plug and Play Device Architecture Specification and supports several operating systems like Linux, *BSD, Solaris and others.

2. General Information

UPnP™ is an architecture that enables discovery, event notification, and control of devices on a network, independent of operating system, programming language, or physical network connection.  UPnP™ is based on common Internet standards and specifications such as TCP/IP, HTTP, and XML. For detailed information about UPnP™, including the UPnP™ Device Architecture Specification, please visit the UPnP™ Forum web site.

In 2000, Intel created the first version of the Linux SDK for UPnP™ Devices and subsequently released it to the open source community to foster growth of UPnP™.  To learn more about  Intel's involvement with both UPnP™ and the SDK, please visit Intel's Universal Plug and Play web site.

In 2006 this 100% compatible fork of the original project was created to support further development. This way, the project now continues using the name "Portable UPnP™" and as a project that is more open to contributions of the community. The main goal is the availability of the project for all important platforms to become a standard for UPnP™.

4. Documentation

Documentation is available in PDF format from the downloads section. The documentation actually resides inside the source code itself and is built into the PDF file by an automated process using Doxygen. Documentation for each function resides in a comment section immediately preceding the function.

5. Other projects that are using the SDK

This is a list of some of the projects and products that are based on the SDK for UPnP™ Devices.  Please let us know if you are working on a project and would like to see it listed here!

The links listed here point to external pages that are not under our control, that means we do not have any influence on their contents. Some jurisdictions have the point of view that the owner of a internet page is responsible for links to other webpages and the contents that can be found there. (Landgericht Hamburg, Judgement from 12th May 1998, 312 O 85/98).

Because of that, the operator of these pages is dissociating explicitly from all links made from here. If we are informed about pages with penal relevant names, links, contents or something else we'll remove links to these pages immediately in case that is technically possible and reasonable.

6. License Conditions

The Portable SDK for UPnP™ Devices is distributed under the BSD (Berkeley Standard Distribution) license. This license allows you to use the source code royalty free and does not place any restrictions on what you do with source code derived from the SDK. For full details on the license conditions, please consult the LICENSE file located inside the SDK distribution.

7. Release List

Release Number Date History
1.18.0 TBA ? Portable UPnP SDK
1.16.0 aborted Portable UPnP SDK
1.14.20 TBA Portable UPnP SDK
1.14.19 2024-04-22 Portable UPnP SDK
1.14.18 2023-08-21 Portable UPnP SDK
1.14.17 2023-04-30 Portable UPnP SDK
1.14.16 2023-03-30 Portable UPnP SDK
1.14.15 2022-11-18 Portable UPnP SDK
1.14.14 2022-10-05 Portable UPnP SDK
1.14.13 2022-08-03 Portable UPnP SDK
1.14.12 2021-09-26 Portable UPnP SDK
1.14.11 2021-08-20 Portable UPnP SDK
1.14.10 2021-08-17 Portable UPnP SDK
1.14.9 2021-08-08 Portable UPnP SDK
1.14.8 2021-08-07 Portable UPnP SDK
1.14.7 2021-05-08 Portable UPnP SDK
1.14.6 2021-04-19 Portable UPnP SDK
1.14.5 2021-04-06 Portable UPnP SDK
1.14.4 2021-03-29 Portable UPnP SDK
1.14.3 2021-03-29 Portable UPnP SDK
1.14.2 2021-02-28 Portable UPnP SDK
1.14.1 2021-02-08 Portable UPnP SDK
1.14.0 2020-07-20 Portable UPnP SDK
1.12.1 2020-04-07 Portable UPnP SDK
1.12.0 2020-01-22 Portable UPnP SDK
1.10.1 2019-11-20 Portable UPnP SDK
1.10.0 2019-11-01 Portable UPnP SDK
1.8.7 2020-04-07 Portable UPnP SDK
1.8.6 2019-11-20 Portable UPnP SDK
1.8.5 2019-11-01 Portable UPnP SDK
1.8.4 2018-10-25 Portable UPnP SDK
1.8.3 2017-11-12 Portable UPnP SDK
1.8.2 2017-11-12 Portable UPnP SDK
1.8.1 2017-05-24 Portable UPnP SDK
1.8.0 2017-01-04 Portable UPnP SDK
1.6.25 2016-02-10 Portable UPnP SDK
1.6.24 2017-11-19 Portable UPnP SDK
1.6.23 2017-11-19 Portable UPnP SDK
1.6.22 2017-05-30 Portable UPnP SDK
1.6.21 2016-12-21 Portable UPnP SDK
1.6.20 2016-07-07 Portable UPnP SDK
1.6.19 2013-11-15 Portable UPnP SDK
1.6.18 2013-01-29 Portable UPnP SDK
1.6.17 2012-04-03 Portable UPnP SDK
1.6.16 2012-03-21 Portable UPnP SDK
1.6.15 2012-01-25 Portable UPnP SDK
1.6.14 2011-11-17 Portable UPnP SDK
1.6.13 2011-03-17 Portable UPnP SDK
1.6.12 2011-02-08 Portable UPnP SDK
1.6.11 2011-02-07 Portable UPnP SDK
1.6.10 2011-01-30 Portable UPnP SDK
1.6.9 2010-11-07 Portable UPnP SDK
1.6.8 2010-10-21 Portable UPnP SDK
1.6.7 2010-10-04 Portable UPnP SDK
1.6.6 2008-04-25 Portable UPnP SDK
1.6.5 2008-02-02 Portable UPnP SDK
1.6.4 2008-01-26 Portable UPnP SDK
1.6.3 2007-12-26 Portable UPnP SDK
1.6.2 2007-12-10 Portable UPnP SDK
1.6.1 2007-11-08 Portable UPnP SDK
1.6.0 2007-06-23 Portable UPnP SDK
1.4.6 2007-04-30 Portable UPnP SDK
1.4.5 2007-04-28 Portable UPnP SDK
1.4.4 2007-04-17 Portable UPnP SDK
1.4.3 2007-03-06 Portable UPnP SDK
1.4.2 2007-02-16 Portable UPnP SDK
1.4.1 2006-08-11 Portable UPnP SDK
1.4.0 2006-06-12 Portable UPnP SDK
1.3.1 2006-03-05 UPnP SDK for Linux
1.3.0 2006-03-04 UPnP SDK for Linux
1.2.1a 2003-11-08 UPnP SDK for Linux
1.2.1 2003-02-13 UPnP SDK for Linux
1.0.4 2001-08-15 UPnP SDK for Linux
1.0.3 2001-06-12 UPnP SDK for Linux
1.0.2 2001-02-07 UPnP SDK for Linux
1.0.1 2000-10-13 UPnP SDK for Linux
1.0.0 2000-08-31 UPnP SDK for Linux
0.9.1 2000-08-17 UPnP SDK for Linux
0.9.0 2000-08-01 UPnP SDK for Linux

8. Package Contents

The SDK for UPnP Devices contains the following:

Path/File Description
README This file. Contains the installation and build instructions.
LICENSE The licensing terms the SDK is distributed under.
NEWS Changes and new features.
ixml/doc The files for generating the XML parser documentation from the source code.
ixml/inc The public include files required to use the XML parser.
ixml/src The source code to the XML parser library.
upnp/doc The files for generating the SDK documentation from the source code.
upnp/inc The public include files required to use the SDK.
upnp/src The source files comprising the SDK, libupnp.so.
upnp/sample A sample device and control point application, illustrating the usage of the SDK.

9. System Requirements

The SDK for UPnP Devices is designed to compile and run under several operating systems. It does, however, have dependencies on some packages that may not be installed by default. All packages that it requires are listed below.

Dependency Description
libpthread The header and library are installed as part of the glibc-devel package (or equivalent).

Additionally, the documentation for the SDK can be auto-generated from the upnp.h header file using Doxygen, a documentation system for C, C++, IDL, and Java*. Doxygen generates the documentation in HTML or TeX format. Using some additional tools, the TeX output can be converted into a PDF file. To generate the documentation these tools are required:

Package Description
Doxygen The homepage for Doxygen is https://www.doxygen.nl/index.html. The current version as of this release of the SDK is version 3.4.9. Doxygen is the only requirement for generating the HTML documentation.
LaTeX/TeX To generate the PDF documentation, LaTeX and TeX tools are necessary. The tetex and tetex-latex packages provide these tools.
dvips dvips converts the DVI file produced by LaTeX into a PostScript* file. The tetex-dvips package provides this tool.
ps2pdf The final step to making the PDF is converting the PostStript* into Portable Document Format. The ghostscript package provides this tool.

For the UPnP library to function correctly, networking must be configured properly for multicasting. To do this:

% route add -net 239.0.0.0 netmask 255.0.0.0 eth0

where 'eth0' is the network adapter that the UPnP library will use. Without this addition, device advertisements and control point searches will not function.

10. Build Instructions

10.1. Pre-requisites

Some packages/tools are required to build the library. Here's a minimal 'inspirational example' that builds the library using a Docker Ubuntu image.

% docker run -it --rm ubuntu /bin/bash

% apt update \
  && apt install -y build-essential autoconf libtool pkg-config git shtool \
  && git clone http://github.com/pupnp/pupnp.git \
  && cd pupnp \
  && ./bootstrap

% ./configure
% make

10.2. Core Libraries

Note: On a git checkout, you need to run ./bootstrap to generate the configure script.

% ./configure
% make

will build a version of the binaries without debug support, and with default options enabled (see below for options available at configure time).

% ./configure CFLAGS="-DSPARC_SOLARIS -mtune=<cputype> -mcpu=<cputype>"
% make

will build a Sparc Solaris version of the binaries without debug support and with default options enabled (see below for options available at configure time). Please note: <cputype> has to be replaced by a token that fits to your platform and CPU (e.g. "supersparc").

To build the documentation, assuming all the necessary tools are installed (see section 3):

To generate the HTML documentation:

% make html

To generate the PDF file:

% make pdf

A few options are available at configure time. Use "./configure --help" to display a complete list of options. Note that these options may be combined in any order. After installation, the file <upnp/upnpconfig.h> will provide a summary of the optional features that have been included in the library.

% ./configure --enable-debug
% make

will build a debug version with symbols support.

To build the library with the optional, integrated mini web server (note that this is the default):

% ./configure --enable-webserver
% make

To build without:

% ./configure --disable-webserver
% make

The SDK also contains some additional helper APIs, declared in inc/tools/upnptools.h. If these additional tools are not required, they can be compiled out:

% ./configure --disable-tools
% make

By default, the tools are included in the library.

To further remove code that is not required, the library can be build with or with out the control point (client) or device specific code. To remove this code:

% ./configure --disable-client
% make

to remove client only code or:

% ./configure --disable-device
% make

to remove device only code.

By default, both client and device code is included in the library. The integrated web server is automatically removed when configuring with --disable-device.

To build the library without large-file support (enabled by default):

% ./configure --disable-largefile
% make

To remove all the targets, object files, and built documentation:

% make clean

10.3. Cross Compilation

To cross compile the SDK, a special "configure" directive is all that is required:

% ./configure --host=arm-linux
% make

This will invoke the "arm-linux-gcc" cross compiler to build the library.

10.4. Samples

The SDK contains two samples: a TV device application and a control point that talks with the TV device. They are found in the $(LIBUPNP)/upnp/sample directory.

To build the samples (note: this is the default behavior):

% ./configure --enable-samples
% make

will build the sample device "$(LIBUPNP)/upnp/tv_device" and sample control point "$(LIBUPNP)/upnp/tv_ctrlpt". Note : the sample device won't be built if --disable-device has been configured, and the sample control point won't be build if --disable-client has been configured.

To run the sample device, you need to create a tvdevice directory and move the web directory there, giving: "$(LIBUPNP)/upnp/sample/tvdevice/web". To run the sample invoke from the command line as follows:

% cd ./upnp/sample/tvdevice
% ../tv_device

10.5. Solaris Build

The building process for the Solaris operating system is similar to the one described above. Only the call to ./configure has to be done using an additional parameter:

% ./configure CFLAGS="-mcpu=<cputype> -mtune=<cputype> -DSPARC_SOLARIS"

where <cputype> has to be replaced by the appropriate CPU tuning flag (e.g. "supersparc"). Afterwards

% make
% make install

can be called as described above.

10.6. Windows Build

See the section CMake Build

10.7. CMake Build

In Order to build everything using the cmake build system, you just need to install cmake for your platform. Standalone cmake is recommended, IDE's like Visual Studio have built-in support which works, but as cmake in general encourages out-of-source builds and VS writes it's config into the source, cmake-gui should be used on windows.

All known options have the same meaning as stated in point 10.2. In Addition 2 options have been added.

  • DOWNLOAD_AND_BUILD_DEPS: This option is only available if a useable git program was found on your system. With this option on, the pthread4w package will be downloaded while configuring the build-env, then it will be build and installed along with upnp.

  • BUILD_TESTING: This option activates the tests.

If you don't want to build pthreads4w in the same build as upnp, you can download it from https://github.com/Vollstrecker/pthreads4w. Just build and install it. The libs and headers will be found, if you set CMAKE_INSTALL_PREFIX (the base install dir) to the same location.

For information on general usage of the cmake build system see: https://cmake.org/cmake/help/v3.19/guide/user-interaction/index.html

11. Install/Uninstall Instructions

11.1. Install

The top-level makefile for the UPnP SDK contains rules to install the necessary components. To install the SDK, as root:

% make install

11.2. Uninstall

Likewise, the top-level makefile contains an uninstall rule, reversing the steps in the install:

% make uninstall

12. Product Release Notes

The SDK for UPnP Devices v1.2.1a has these known issues:

  • The UPnP library may not work with older versions of gcc and libstdc++, causing a segmentation fault when the library loads. It is recommended that gcc version 2.9 or later be used in building library.
  • The UPnP library does not work the glibc 2.1.92-14 that ships with Red Hat 7.0. For the library to function, you must updated the glibc and glibc-devel packages to 2.1.94-3 or later. There is some issue with libpthreads that has been resolved in the 2.1.94 version.

13. New Features

See ChangeLog file.

14. Support and Contact Information

Intel is not providing support for the SDK for UPnP Devices. Mailing lists and discussion boards can be found at https://github.com/pupnp/pupnp/discussions.

If you find this SDK useful, please send an email to [email protected] and let us know.

* Other brands, names, and trademarks are the property of their respective owners.

15. IXML support for scripting languages

The tree structure of XML documents created by IXML is hard to maintain when creating a binding for a scripting language. Even when many elements may never be used on the script side, it requires copying the entire tree structure once you start accessing elements several levels deep.Hence scriptsupport was added. To enable it compile while IXML_HAVE_SCRIPTSUPPORT has been defined (enabled by default). This allows control using only a list instead of a tree-like structure, and only nodes actually accessed need to be created instead of all the nodes in the tree.

Here's how its supposed to work:

  • The scriptsupport allows you to add a callback when a node is freed on the C side, so appropriate action can be taken on the script side, see function ixmlSetBeforeFree().
  • Instead of recreating the tree structure, an intermediate object should be created only for the nodes actually accessed. The object should be containing a pointer to the node and a 'valid flag' which is initially set to TRUE (the valid flag, can simply be the pointer to the node being NULL or not). Before creating the intermediate object, the custom tag 'ctag' can be used to check whether one was already created.
  • the node object gets an extra 'void* ctag' field, a custom tag to make a cross reference to the script side intermediate object. It can be set using ixmlNode_setCTag(), and read using ixmlNode_getCTag(). Whenever a new intermediate object is created, the ctag of the corresponding node should be set to point to this intermediate object.
  • The tree structure traversal is done on the C side (looking up parents, children and siblings)
  • Every intermediate object created should be kept in a list (preferably a key-value list, where the key is the pointer to the node and the value is the pointer to the intermediate object)
  • when the callback is called, the node should be looked up in the list, the flag set to false, the pointer to the C-side node be cleared and on the C-side the ctag should be cleared.
  • whenever the intermediate object is accessed and its flag is set to False, an error should be thrown that the XML document has been closed.

Freeing resources can be done in 2 ways, C side by simply calling the free node methods, or script side by the garbage collector of the script engine.

Script side steps:

  • if the valid flag is set to False (XML document is closed), then the intermediate object can be destroyed, no further action.
  • if the node has a parent, then the intermediate object can be destroyed after the ctag on the corresponding node has been cleared. Nothing needs to be freed on the C-side.
  • if the node has no parent, then the node must be freed on the C side by calling the corresponding free node methods. This will result in a chain of callbacks closing the node and all underlying nodes.

16. SourceForge Badges

oss-users-love-us oss-community-choice oss-sf-favorite oss-community-leader oss-open-source-excellence

Download Portable UPnP SDK Download Portable UPnP SDK Download Portable UPnP SDK Download Portable UPnP SDK

17. Thanks

  • To all the people listed in the THANKS file.
  • To JetBrains for kindly providing us with open source licenses of their amazing products.

JetBrains Logo

pupnp's People

Contributors

biswa96 avatar chouquette avatar emptyvoid avatar epirat avatar ffontaine avatar gburca avatar givascu avatar jbkempf avatar jcowgill avatar karlstraussberger avatar medoc92 avatar meeeestad avatar michael-o avatar mjg59 avatar mrjimenez avatar mstorsjo avatar neheb avatar nickleverton avatar pamapa avatar pengzheng avatar philippe44 avatar smestdagh avatar thoren-d avatar tieske avatar ukleinek avatar vollstrecker avatar whorfin avatar whyman avatar willnewton avatar yoichi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pupnp's Issues

UpnpSendAdvertisement() expiration limit

When UpnpSendAdvertisement() is called with an expiration age of 60, the advertisements are sent continuously, one right after the other, instead of 60s apart. That's because TimeThreadSchedule() is called with:

#define AUTO_ADVERTISEMENT_TIME 30
TimerThreadSchedule(..., (Exp / 2) - AUTO_ADVERTISEMENT_TIME, REL_SEC, ...)

To truly send an advertisement every 60s, the caller would have to ask for 180s. Values less than 60 would schedule events in the past.

We need a maintenance branch for 1.8

The 1.8 version of the library is set to become the main version in the near future, becoming the default package on some Linux distributions.

It is time that it goes into maintenance mode on a branch which will only receive bug and security fixes.

Other changes should go to the master branch (future 1.9 or 1.10).

Some of the recent changes to 1.8 have been quite infortunate for a production branch (API ! and significant behaviour changes).

Debian source install: gerbera requires libupnp 1.8.3 or above.

I wanted to compile the latest gerbera on my debian server and got the following error:

-- Found UPnP: /usr/lib/libupnp.so (found version "1.8.1") 
CMake Error at CMakeLists.txt:353 (message):
  gerbera requires libupnp 1.8.3 or above.
-- Configuring incomplete, errors occurred!

So I ran ./scripts/install-pupnp18.sh and still had the same error, even after removing CMakeCache.txt and CMakeFiles in the build dir.

It turned out that libupnp gets installed into /usr/ now, while previously it would be installed into /usr/local/.

I had to manually remove /usr/local/lib/libupnp* and /usr/local/include/upnp* to make it work.

1.8: How to use list?

This is probably one for @mrjimenez

I've been experimenting with the extra headers (1.8) branch, and am a bit confused to add some items to the list from client code.

There is a method: UpnpFileInfo_add_to_list_ExtraHeadersList(UpnpFileInfo *p, list_head* head);

I was expecting to be able to add a ExtraHeaders* here, how do I make a list_head? Why is it needed?

total jobs = 100, too many jobs

I'm using the latest commit on master as a submodule in my project.

The program is very simple: it setups up upnp and the web server (I based my xml file off of the examples), then enters a while(1) { ... } where I send a upnp advertisement with timeout INTERVAL, then call sleep(INTERVAL).

Everything works as expected - advertisements + the web server.

After a long period, I get the infamous "total jobs = 100, too many jobs" message. I have compiled with and without UPNP_ENABLE_BLOCKING_TCP_CONNECTIONS defined.

When INTERVAL is large, the messages obviously take longer to show up, but no matter the interval (0, 5, 30, 120, 300), the issue is consistent.

I found this post, but it appears that the codebase has diverged significantly since this time. It seems like the above define was intended to fix the issue, but I'm unsure.

P.S. I love the use of XMACROS for class generation :)

Pull request 79 broke compliant compliant HTTP clients

Pull request #79 arbitrarily adds a second empty line after the headers in some cases. This breaks standard-compliant clients.

The second empty line is taken as part of the body: this is really basic, and true with ALL HTTP versions, The syntax of ANY HTTP message of ANY version:

request or status line
headers 
empty-line 
body

If there is a second empty line, it is taken as part of the body. This has two consequences:

  • If an XML document is following, there will be a blank line before <?xml. Some parsers don't like it.
  • As the message content-length header was not adjusted when adding the second cr/lf, there will be data missing at the end of the document. Again for example with XML, if there was no extra white space after the closing tag, the document is now incomplete (e.g. ending with </root).

In many cases, if the XML parser is lenient, and the document can be truncated with no consequences (for example if there is extra whitespace at the end), no problem will arise. But, for example, upnp-inspector does not discover upmpdcli instances when run with this change. The following curl session explains why:

$ curl -0 -s http://192.168.4.6:49152/uuid-421fdf1c-9411-896d-b582-ac220b4f46f0/description.xml  > description.xml
$ head description.xml 

<?xml version="1.0" encoding="utf-8"?>
<root xmlns="urn:schemas-upnp-org:device-1-0">

$ tail description.xml
    </serviceList>
  </device>
</root$ 

Notice the extra blank line before <?xml and the truncated document.

Adding the spurious empty line is done as part of processing the 'C' directive (Connection: close). There is no guarantee that this header is the last (currently: it is always last as far as I can see). If there are further headers, of course they will be ignored.

So this change is non-sensical. Samsung TVs should be accomodated by the application by modifying the content (add an empty line before the data), not by breaking every other compliant device.

I have a bit less firm opinion about the other part of the change (in http_SendStatusResponse()). Adding spurious newlines to an error response can probably have no bad consequence. However, I don't think that it makes much sense either.

Me: I'd just revert the whole change.

Sourceforge vs. GitHub

Hi,

GitHub says 1.6.21 is the latest release: http://pupnp.sourceforge.net/ but no file is available for that release.

Has pupnp development officially moved here? Could you put a link from the SF project page saying the project can also be found here?

As a packager for NixOS, this would make my life easier.

Thank you,
Graham

MacOS build fails

Hi,

I'm trying to build pupnp on Mac, but I'm getting errors.
Could you help with this? Thanks!

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: .libs/libupnp-1.8.a(libupnp_1_8_la-inet_pton.o) has no symbols
libtool: link: ranlib .libs/libupnp-1.8.a
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: .libs/libupnp-1.8.a(libupnp_1_8_la-inet_pton.o) has no symbols
/usr/local/bin/gsed: can't read Files/Mirror/gerbera/pupnp-release-1.8.1/ixml/libixml-1.8.la: No such file or directory

Breaking the API in a minor release

The 1.8 API was changed between 1.8.2 and 1.8.3 (new parameters to the VDCallBack functions).

Making life difficult for developers is not going to encourage the use of this library.

I really wished that this kind of change could be discussed before it is committed.

Version 1.8.3 breaks a lot of dependent ports

  • retroshare:
--- rsinit.o ---
/usr/local/include/upnp/upnpdebug.h:40:10: fatal error: 'ThreadPool.h' file not found
#include "ThreadPool.h"
         ^~~~~~~~~~~~~~
  • linuxigd:
./gatedevice.h:50:29:gatedevice.c:10:10: fatal error: 'upnp/TimerThread.h' file not found
#include <upnp/TimerThread.h>
         ^~~~~~~~~~~~~~~~~~~~
  • mediastreamer:
upnp/upnp_igd.c:426:51: error: incomplete definition of type 'struct Upnp_Discovery'
        ret = UpnpResolveURL((baseURL ? baseURL : d_event->Location), relURL, presURL);
                                                  ~~~~~~~^
upnp/upnp_igd.c:398:86: note: forward declaration of 'struct Upnp_Discovery'
void upnp_igd_add_device(upnp_igd_context *igd_ctxt, IXML_Document *desc_doc, struct Upnp_Discovery *d_event) {
                                                                                     ^
upnp/upnp_igd.c:447:47: error: incomplete definition of type 'struct Upnp_Discovery'
                                tmpdevnode->device.advr_time_out = d_event->Expires;
                                                                   ~~~~~~~^

As a result - I can't update the FreeBSD port. 1.8.3 breaks dependencies, 1.6.25 is broken itself (no pdfs).

1.8/2.0 Release

Hi,

Please consider tagging a 1.8 series release. At the moment there isn't a release with the newer nicer API.

I've ported my fork of MediaTomb over to the master branch (and it works great!) and I would like to do a release of my code, but it feels wrong to make people install a git snapshot as a dependency.

I am willing to do whatever is needed myself to make this happen if that helps - just let me know what is needed. Though from my view it would just be a git tag and tarball. I am happy to provide maintenance on the branch also if needed, but you seem more than capable yourself.

Previously you mentioned that it required more testing - but after spending some time with it I am happy it is good to go.

Thanks!

Advice needed for garbage collection changes

Requesting some advice, see this commit; Tieske@2b4c5f8

I'm building a binding for a scripting language with automatic garbage collection. The IXML tree structure is troublesome because I have to recreate the full tree logic on the script side. Because this is such a PITA (many tree traversals required to release something properly), I added a custom tag (void*) to the Node object, which makes it easy to track the resources and free them when appropriate.

I haven't done any testing, so please DO NOT yet integrate it. I just would like feedback on whether this would be accepted as a change, because I would like to stick to the standard library. If it won't , then I'll drop my efforts and will start working on recreating the entire tree.

Preferably I would like to drop the compiler directive SCRIPTSUPPORT, and have it included by default. The cost is 1 extra pointer per Node.

Please advice.

Regards
Thijs

1.8.3 broke ABI without changing SONAME

This change in 1.8.3 broke the ABI and therefore the SONAME should have been changed (ie: age reset to 0):

 EXPORT_SPEC int UpnpAddVirtualDir(
        /*! [in] The name of the new directory mapping to add. */
-       const char *dirName);
+       const char *dirName,
+       /*! [in] The cookie to associated with this virtual directory */
+       const void *cookie,
+       /*! [out] The cookie previously associated, if mapping is already present */
+       const void **oldcookie);

If only the cookie argument was added, you could probably get away with this because all that would happen is that a garbage value is passed around without being used. With the addition of oldcookie, any old programs will not initialise this value and will probably segfault when libupnp tries to write to it.

Homebrew Formula for pupnp

Hello,

This issue is to determine the interest level of the pupnp team to have a macOS Homebrew formula to install the upnp library into macOS.

Background

I work on Gerbera UPnP media server which uses the pupnp library for support. We would like to create a Homebrew formula to make it easy for installation on macOS. Since pupnp is a dependency, it seems reasonable to create a Homebrew formula for the library as well.

Request

I created an initial pupnp Homebrew formula, but would request your approval before pursuing such an addition to Homebrew project.

[1.8.4] Cannot be built on Windows

I'm getting errors while trying to build release-1.8.4 with Visual Studio 2017:

Cannot open include file: 'autoconfig.h': No such file or directory
Cannot open source file: '..\..\threadutil\src\FreeList.c': No such file or directory
Cannot open source file: '..\..\threadutil\src\LinkedList.c': No such file or directory
Cannot open source file: '..\..\threadutil\src\ThreadPool.c': No such file or directory
Cannot open source file: '..\..\threadutil\src\TimerThread.c': No such file or directory
Cannot open include file: 'upnpconfig.h': No such file or directory

Compatibility issue on Event parameter of Upnp_FunPtr

Dear Marcelo,

There is a compatibility issue between upnp in version 1.6.x and 1.8.x because in libupnp 1.6.x, the Event in Upnp_FunPtr was a simple void: https://github.com/mrjimenez/pupnp/blob/branch-1.6.x/upnp/inc/upnp.h

typedef int (*Upnp_FunPtr)(
	/*! [in] .*/
	Upnp_EventType EventType,
	/*! [in] .*/
	void *Event,
	/*! [in] .*/
	void *Cookie);

However, it was changed to a const void* in 1.8.x: https://github.com/mrjimenez/pupnp/blob/master/upnp/inc/Callback.h:

typedef int (*Upnp_FunPtr)(
	/*! [in] .*/
	Upnp_EventType EventType,
	/*! [in] .*/
	const void *Event,
	/*! [in] .*/
	void *Cookie);

As a result of this change, vlc fails to build with libupnp-1.8 even with compat functions.
@mrjimenez what is your suggestion? Should we add a const in 1.6.x (and breaks older applications) or remove it from 1.8.x ?

Fabrice

(http_RecvMessage): Error -119, http_error_code = 400

Hi,

I'm using this library for my project(mirror link server),
this works perfectly with some mirror link client devices.
but there is one device which we can not connect.

seems this is about upnp:propchange.
I'm lost in direction.
any helps, thanks!

the following is part of log:

01-01 11:41:16.788   731  1652 I ml.libupnp: got subscription request
01-01 11:41:16.788   731  1652 I ml.libupnp: external/pupnp/upnp/src/genlib/miniserver/miniserver.c 248:
01-01 11:41:16.788   731  1652 I ml.libupnp: miniserver 13: COMPLETE
01-01 11:41:16.788   731  2540 I ml.libupnp: external/pupnp/upnp/src/gena/gena_device.c 327:
01-01 11:41:16.788   731  2540 I ml.libupnp: Trying a write lock
01-01 11:41:16.788   731  2540 I ml.libupnp: external/pupnp/upnp/src/gena/gena_device.c 327:
01-01 11:41:16.788   731  2540 I ml.libupnp: Write lock acquired
01-01 11:41:16.788   731  2540 I ml.libupnp: external/pupnp/upnp/src/api/upnpapi.c 3803:
01-01 11:41:16.788   731  2540 I ml.libupnp: GetHandleInfo: entering, Handle is 1
01-01 11:41:16.788   731  2540 I ml.libupnp: external/pupnp/upnp/src/api/upnpapi.c 3818:
01-01 11:41:16.788   731  2540 I ml.libupnp: GetHandleInfo: exiting
01-01 11:41:16.788   731  2540 I ml.libupnp: external/pupnp/upnp/src/gena/gena_device.c 345:
01-01 11:41:16.788   731  2540 I ml.libupnp: Trying Unlock
01-01 11:41:16.788   731  2540 I ml.libupnp: external/pupnp/upnp/src/gena/gena_device.c 345:
01-01 11:41:16.788   731  2540 I ml.libupnp: Unlocked rwlock
01-01 11:41:16.788   731  2540 I ml.libupnp: external/pupnp/upnp/src/genlib/net/http/httpreadwrite.c 1684:
01-01 11:41:16.788   731  2540 I ml.libupnp: Adding a string : CONTENT-TYPE: text/xml; charset="utf-8"
01-01 11:41:16.788   731  2540 I ml.libupnp: CONTENT-LENGTH: 143
01-01 11:41:16.788   731  2540 I ml.libupnp: NT: upnp:event
01-01 11:41:16.788   731  2540 I ml.libupnp: NTS: upnp:propchange
01-01 11:41:16.788   731  2540 I ml.libupnp: 
01-01 11:41:16.788   731  2540 I ml.libupnp: external/pupnp/upnp/src/genlib/net/http/httpreadwrite.c 1684:
01-01 11:41:16.788   731  2540 I ml.libupnp: Adding a string : SID: 
01-01 11:41:16.788   731  2540 I ml.libupnp: external/pupnp/upnp/src/genlib/net/http/httpreadwrite.c 1684:
01-01 11:41:16.788   731  2540 I ml.libupnp: Adding a string : uuid:835740a0-b039-11e5-a6fe-dc69dfb571b8
01-01 11:41:16.788   731  2540 I ml.libupnp: external/pupnp/upnp/src/genlib/net/http/httpreadwrite.c 1684:
01-01 11:41:16.788   731  2540 I ml.libupnp: Adding a string : SEQ: 
01-01 11:41:16.789   731  2540 I ml.libupnp: external/pupnp/upnp/src/gena/gena_device.c 190:
01-01 11:41:16.789   731  2540 I ml.libupnp: gena notify to: 192.168.2.3:49349
01-01 11:41:16.790   731  2540 I ml.libupnp: external/pupnp/upnp/src/genlib/net/http/httpreadwrite.c 1684:
01-01 11:41:16.790   731  2540 I ml.libupnp: Adding a string : NOTIFY
01-01 11:41:16.790   731  2540 I ml.libupnp: external/pupnp/upnp/src/genlib/net/http/httpreadwrite.c 1684:
01-01 11:41:16.790   731  2540 I ml.libupnp: Adding a string :  
01-01 11:41:16.790   731  2540 I ml.libupnp: external/pupnp/upnp/src/genlib/net/http/httpreadwrite.c 1706:
01-01 11:41:16.790   731  2540 I ml.libupnp: Adding a char Buffer starting with: /
01-01 11:41:16.790   731  2540 I ml.libupnp: external/pupnp/upnp/src/genlib/net/http/httpreadwrite.c 1684:
01-01 11:41:16.790   731  2540 I ml.libupnp: Adding a string :  HTTP/
01-01 11:41:16.790   731  2540 I ml.libupnp: external/pupnp/upnp/src/genlib/net/http/httpreadwrite.c 1684:
01-01 11:41:16.790   731  2540 I ml.libupnp: Adding a string : .
01-01 11:41:16.790   731  2540 I ml.libupnp: external/pupnp/upnp/src/genlib/net/http/httpreadwrite.c 1684:
01-01 11:41:16.790   731  2540 I ml.libupnp: Adding a string : HOST: 
01-01 11:41:16.790   731  2540 I ml.libupnp: external/pupnp/upnp/src/genlib/net/http/httpreadwrite.c 1706:
01-01 11:41:16.790   731  2540 I ml.libupnp: Adding a char Buffer starting with: 1
01-01 11:41:16.790   731  2540 I ml.libupnp: external/pupnp/upnp/src/genlib/net/http/httpreadwrite.c 1684:
01-01 11:41:16.790   731  2540 I ml.libupnp: Adding a string : CONTENT-TYPE: text/xml; charset="utf-8"
01-01 11:41:16.790   731  2540 I ml.libupnp: CONTENT-LENGTH: 143
01-01 11:41:16.790   731  2540 I ml.libupnp: NT: upnp:event
01-01 11:41:16.790   731  2540 I ml.libupnp: NTS: upnp:propchange
01-01 11:41:16.790   731  2540 I ml.libupnp: SID: uuid:835740a0-b039-11e5-a6fe-dc69dfb571b8
01-01 11:41:16.790   731  2540 I ml.libupnp: SEQ: 0
01-01 11:41:16.790   731  2540 I ml.libupnp: 
01-01 11:41:16.790   731  2540 I ml.libupnp: 
01-01 11:41:16.790   731  2540 I ml.libupnp: external/pupnp/upnp/src/genlib/net/http/httpreadwrite.c 538:
01-01 11:41:16.790   731  2540 I ml.libupnp: >>> (SENT) >>>
01-01 11:41:16.790   731  2540 I ml.libupnp: NOTIFY / HTTP/1.1
01-01 11:41:16.790   731  2540 I ml.libupnp: HOST: 192.168.2.3:49349
01-01 11:41:16.790   731  2540 I ml.libupnp: CONTENT-TYPE: text/xml; charset="utf-8"
01-01 11:41:16.790   731  2540 I ml.libupnp: CONTENT-LENGTH: 143
01-01 11:41:16.790   731  2540 I ml.libupnp: NT: upnp:event
01-01 11:41:16.790   731  2540 I ml.libupnp: NTS: upnp:propchange
01-01 11:41:16.790   731  2540 I ml.libupnp: SID: uuid:835740a0-b039-11e5-a6fe-dc69dfb571b8
01-01 11:41:16.790   731  2540 I ml.libupnp: SEQ: 0
01-01 11:41:16.790   731  2540 I ml.libupnp: 
01-01 11:41:16.790   731  2540 I ml.libupnp: 
01-01 11:41:16.790   731  2540 I ml.libupnp: buf_length=202, num_written=202
01-01 11:41:16.790   731  2540 I ml.libupnp: [0]: 78 [1]: 79------------
01-01 11:41:16.790   731  2540 I ml.libupnp: external/pupnp/upnp/src/genlib/net/http/httpreadwrite.c 538:
01-01 11:41:16.790   731  2540 I ml.libupnp: >>> (SENT) >>>
01-01 11:41:16.790   731  2540 I ml.libupnp: <e:propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
01-01 11:41:16.790   731  2540 I ml.libupnp: <e:property>
01-01 11:41:16.790   731  2540 I ml.libupnp: <UnusedProfileIDs>0</UnusedProfileIDs>
01-01 11:41:16.790   731  2540 I ml.libupnp: </e:property>
01-01 11:41:16.790   731  2540 I ml.libupnp: </e:propertyset>
01-01 11:41:16.790   731  2540 I ml.libupnp: 
01-01 11:41:16.790   731  2540 I ml.libupnp: 
01-01 11:41:16.790   731  2540 I ml.libupnp: buf_length=141, num_written=141
01-01 11:41:16.790   731  2540 I ml.libupnp: [0]: 60 [1]: 101------------
01-01 11:41:16.790   731  2540 I ml.libupnp: external/pupnp/upnp/src/genlib/net/http/httpreadwrite.c 538:
01-01 11:41:16.790   731  2540 I ml.libupnp: >>> (SENT) >>>
01-01 11:41:16.790   731  2540 I ml.libupnp: 
01-01 11:41:16.790   731  2540 I ml.libupnp: 
01-01 11:41:16.790   731  2540 I ml.libupnp: buf_length=2, num_written=2
01-01 11:41:16.790   731  2540 I ml.libupnp: [0]: 13 [1]: 10------------
01-01 11:41:16.791   731  1648 I ml.libupnp: external/pupnp/upnp/src/genlib/net/http/httpreadwrite.c 326:
01-01 11:41:16.791   731  1648 I ml.libupnp: <<< (RECVD ERROR) <<<
01-01 11:41:16.791   731  1648 I ml.libupnp: [QtMirrorLink][ERROR] HTTP/1.1 400 Bad Request
01-01 11:41:16.791   731  1648 I ml.libupnp: Content-Type: text/html; charset="utf-8"
01-01 11:41:16.791   731  1648 I ml.libupnp: 
01-01 11:41:16.791   731  1648 I ml.libupnp: <h1>HTTP/1.1 400 Bad Request</h1>
01-01 11:41:16.791   731  1648 I ml.libupnp: 
01-01 11:41:16.791   731  1648 I ml.libupnp: -----------------
01-01 11:41:16.791   731  1648 I ml.libupnp: external/pupnp/upnp/src/genlib/net/http/httpreadwrite.c 331:
01-01 11:41:16.791   731  1648 I ml.libupnp: (http_RecvMessage): Error -119, http_error_code = 400.

Time for another release?

I'd like to use pupnp in an application, and it's been a while since the latest release. There seems to have been a lot of work on it since the last release so it'd make sense to create another one.

Apply @medoc92's patches from sourceforge

Hi,

Please consider merging the below patches, written by @medoc92 and submitted to sourceforge a while ago.

The patches are:

https://github.com/medoc92/pupnp16/commit/90d8a5b3ebf59c69f5d0ffb97c0abc0f981c2ef6 (Reorganise genaInitNotifyExt and genaNotifyAll/genaNotifyAllExt)

https://github.com/medoc92/pupnp16/commit/885c51ba77ba251b024d1d4298c55635d59f1905 ( Queue events on their subscription object instead of adding them to the thread pool immediately.)

I think this will help with too many jobs and https://github.com/v00d00/gerbera/issues/96

and

https://github.com/medoc92/pupnp16/commit/44dfe018d95b4043f8be272e59c82b18b48bdea2 (ChangeLog for the above changes)

The first two apply cleanly to master.

Thanks!

Cannot compile against 1.8.4 in Fedora 29

I cannot compile against 1.8.4 after making the required changes due to the API change. The struct UpnpFileInfo does not appear to be defined.

I am using Fedora 29 - fully up-to-date, the libupnp info is:

libupnp-devel.x86_64 1.6.25-1.fc28
libupnp.x86_64 1.6.25-1.fc28

My code, in part, is as follows.

#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <upnp/upnp.h>
...

int WebCallbacks::getInfo( const char* urlPath, UpnpFileInfo* info, const void *cookie )
...
info->content_type = strdup( db->getTrackMIME( db->getTrackId( 0, 0, 0, m_path, NULL )));
./upnp/WebCallbacks.cpp: In member function ‘int WebCallbacks::getInfo_(const char*, UpnpFileInfo*)’:
./upnp/WebCallbacks.cpp:98:6: error: invalid use of incomplete type ‘UpnpFileInfo’ {aka ‘struct s_UpnpFileInfo’}
info->content_type = strdup( db->getTrackMIME( db->getTrackId( 0, 0, 0, m_path, NULL )));
^~
In file included from /usr/include/upnp/ActionComplete.h:22,
from /usr/include/upnp/upnp.h:397,
from ./upnp/WebCallbacks.cpp:9:
/usr/include/upnp/TemplateInclude.h:138:1: note: forward declaration of ‘UpnpFileInfo’ {aka ‘struct s_UpnpFileInfo’}
TEMPLATE_PROTOTYPE_COMMON(CLASS)
^~~~~~~~~~~~~~~~~~~~~~~~~
`

I have done a "git clone" on this repository and run the following command - it doesn't find the actual definition of the struct.

$ find . -type f -name *h -exec grep -n FileInfo {} \; -print
402:#include "FileInfo.h"
2577: UpnpFileInfo *info,
./upnp/inc/upnp.h
7: * \brief UpnpFileInfo object declararion.
23:#define CLASS UpnpFileInfo
./upnp/inc/FileInfo.h

Some installed headers cannot be included

Some installed include files error out when included. They should be fixed, or maybe some of the headers are private?

TemplateInclude.h

TemplateInclude.h:147:1: error: parameter 1 has incomplete type
 EXPAND_CLASS_MEMBERS(CLASS)
 ^~~~~~~~~~~~~~~~~~~~
TemplateInclude.h:147:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
TemplateInclude.h: In function ‘EXPAND_CLASS_MEMBERS’:
TemplateInclude.h:147:1: error: parameter name omitted
TemplateInclude.h:150:0: error: expected ‘{’ at end of input

TemplateSource.h

TemplateSource.h:209:10: fatal error: config.h: No such file or directory
 #include "config.h"
          ^~~~~~~~~~

list.h

list.h:39:20: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
 static UPNP_INLINE void INIT_LIST_HEAD(struct list_head *list)
                    ^~~~

upnpdebug.h

upnpdebug.h:40:10: fatal error: ThreadPool.h: No such file or directory
 #include "ThreadPool.h"
          ^~~~~~~~~~~~~~

LFS issue on 32-bit Linux systems

Hi,

After testing pupnp 1.8.3 with gerbera 1.2.0 I found that on 32-bit linux (x86 and ARM) files larger than 2GB are played to the point in time, where the 2GB is reached.
Since the issue is not present on AMD64 my suspects were size_t and long long int.

My suspicion it that the following lines cause the issue:
https://github.com/mrjimenez/pupnp/blob/23f1d9346586ab815ce6ca9634e1e6d8064922ec/upnp/src/genlib/net/http/httpreadwrite.c#L448
(amount_to_be_read should be off_t instead of size_t)
https://github.com/mrjimenez/pupnp/blob/23f1d9346586ab815ce6ca9634e1e6d8064922ec/upnp/src/genlib/net/http/httpreadwrite.c#L468
(ReadSendSize is off_t and is cast down size_t)

It may be that other steps need to be taken, I changed Data_Buf_Size also to off_t.
It seems to work now.

The issue was probably introduced in 2010 with mrjimenez@9e7e7e3

Cheers,
wh

Inconsistent types

Methods ixmlDocument_createAttribute() and ixmlDocument_createAttributeEx() both take a 'name' argument typed as 'char*', for consistency this should be type 'DOMString'

Enable IPv6 by default?

Should we enable IPv6 by default (at least on version 1.8.x and perhaps also on version 1.6.x)? Most of the systems should now support IPv6.

off_t being part of the API results in headaches

As could be seen in #51 it is important that a program that makes use of libupnp is compiled using the same settings for LFS as libupnp itself.

I don't know how to best catch this kind of error (or better yet, let libupnp make the right thing independent of the settings for the using program).

Suggestions welcome

Incompatibility with stdbool.h

It does not work to include stdbool.h before upnp.h. The reason is that list.h undefines both bool and true. These two defines are just used internally in list.h so they could be renamed to something else.

browse() failed die to xml parser

Contentdirectory:1

response: Browse(
“<DIDL-Lite xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:upnp=”urn:schemas-upnp-org:metadata-1-0/upnp/”
xmlns=”urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/”>
<container id=”0” parentID=”-1” childCount=”2” restricted=”true”
searchable="true">

Contentdirectory:3, 4

Response: Browse("
<?xml version="1.0" encoding="UTF-8"?>
<DIDL-Lite
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/"
xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/
http://www.upnp.org/schemas/av/didl-lite.xsd
urn:schemas-upnp-org:metadata-1-0/upnp/
http://www.upnp.org/schemas/av/upnp.xsd">
<container id="1" parentID="0" childCount="2" restricted="0">

If string: <?xml version="1.0" encoding="UTF-8"?> is present in response than fail occur.

I fix this in my php-upnp server: rozhuk-im/ssdpd@b28c21d
But probably others upnp/dlna servers return htis string.
I use latest VLC for win in my tests.

The --enable-reusaddr configuration option makes it difficult to run multiple instances on one host

When libupnp is configured with --enable-reuseaddr, it does not retry with a different port if the default one (49152) is busy.

This makes it difficult to run multiple apps (e.g. renderer + control point or multiple control points) on the same host. The second libupnp-based application fails if it tries to use the default port. The only workaround would be to manually configure different ports, but this is a major regression compared to the current situation where the next available port is just used.

There is no contradiction between setting reuseaddr, so that a restart of a single application will use the same port (which can help with firewalls etc.), and also trying the next available value if the first one is actually busy.

Debian and Ubuntu already package the library with --enable-reuseaddr so this is a major issue.

on 32 bit arches building with largefile support fails

building libupnp with large file support fails on any 32 bit arch fails to build the samples. the result being that the samples always try to build without large file support

./configure --build=i686-redhat-linux-gnu --host=i686-redhat-linux-gnu --program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --enable-static=no --enable-ipv6
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking build system type... i686-redhat-linux-gnu
checking host system type... i686-redhat-linux-gnu
checking for style of include used by make... GNU
checking for i686-redhat-linux-gnu-gcc... no
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... none
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... 64
checking whether system differentiates 64bit off_t by defines... yes
checking for --enable-debug... no
checking for --enable-client... yes
checking for --enable-device... yes
checking for --enable-webserver... yes
checking for --enable-ssdp... yes
checking for --enable-optssdp... yes
checking for --enable-soap... yes
checking for --enable-gena... yes
checking for --enable-tools... yes
checking for --enable-ipv6... yes
checking for --enable-unspecified_server... no
checking for --enable-open_ssl... no
checking for --enable-blocking_tcp_connections... yes
checking for --enable-scriptsupport... yes
checking for --enable-postwrite... no
checking for --enable-reuseaddr... no
checking for --enable-samples... yes
checking for documentation directory... /usr/share/doc/libupnp-1.8.3
checking for i686-redhat-linux-gnu-gcc... gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking dependency style of gcc... (cached) none
checking for i686-redhat-linux-gnu-ar... no
checking for i686-redhat-linux-gnu-lib... no
checking for i686-redhat-linux-gnu-link... no
checking for ar... ar
checking the archiver (ar) interface... ar
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert i686-redhat-linux-gnu file names to i686-redhat-linux-gnu format... func_convert_file_noop
checking how to convert i686-redhat-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for i686-redhat-linux-gnu-objdump... no
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for i686-redhat-linux-gnu-dlltool... no
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for i686-redhat-linux-gnu-ar... ar
checking for archiver @FILE support... @
checking for i686-redhat-linux-gnu-strip... no
checking for strip... strip
checking for i686-redhat-linux-gnu-ranlib... no
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for i686-redhat-linux-gnu-mt... no
checking for mt... no
checking if : is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... no
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking whether make sets $(MAKE)... (cached) yes
checking for egrep... (cached) /usr/bin/grep -E
--------------------- Default compilation flags -------------------------------
host is i686-redhat-linux-gnu
host_os is linux-gnu
Using non-specific system compiler settings
checking CFLAGS for gcc -Os... -Os
checking CFLAGS for maximum warnings... -Wall
-------------------------------------------------------------------------------
checking for size_t... yes
checking for Win32... no
checking for ANSI C header files... (cached) yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking for inttypes.h... (cached) yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking netdb.h usability... yes
checking netdb.h presence... yes
checking for netdb.h... yes
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking syslog.h usability... yes
checking syslog.h presence... yes
checking for syslog.h... yes
checking for unistd.h... (cached) yes
checking for an ANSI C-conforming const... yes
checking whether byte ordering is bigendian... no
checking for sys/types.h... (cached) yes
checking for sys/socket.h... (cached) yes
checking ws2tcpip.h usability... no
checking ws2tcpip.h presence... no
checking for ws2tcpip.h... no
checking for socklen_t... yes
checking for vprintf... yes
checking for _doprnt... no
checking for _LARGEFILE_SOURCE value needed for large files... no
checking for strnlen... yes
checking for strndup... yes
checking for library containing bind... none required
checking for library containing gethostbyname... none required
checking for library containing sched_getparam... none required
--------------------------- pthread stuff -------------------------------------
checking for the pthreads library -lpthreads... no
checking whether pthreads work without any flags... no
checking whether pthreads work with -Kthread... no
checking whether pthreads work with -kthread... no
checking for the pthreads library -llthread... no
checking whether pthreads work with -pthread... yes
checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
checking if more special flags are required for pthreads... no
----------------------- pthread_rwlock_t stuff --------------------------------
checking if pthread_rwlock_t is available... yes, supported without any options
-------------------------------------------------------------------------------
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating ixml/Makefile
config.status: creating ixml/doc/Makefile
config.status: creating upnp/Makefile
config.status: creating upnp/doc/Makefile
config.status: creating upnp/sample/Makefile
config.status: creating upnp/unittest/Makefile
config.status: creating docs/dist/Makefile
config.status: creating libupnp.pc
config.status: creating autoconfig.h
config.status: creating upnp/inc/upnpconfig.h
config.status: executing depfiles commands
config.status: executing libtool commands
+ sed -i.rpath 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
+ sed -i.rpath 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
+ /usr/bin/make -O -j8
/usr/bin/make  all-recursive
Making all in ixml
Making all in doc
make[3]: Nothing to be done for 'all'.
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/ixml'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I./src/inc -I../upnp/inc  -DNDEBUG -DIXML_HAVE_SCRIPTSUPPORT   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/ixmldebug.lo src/ixmldebug.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I./src/inc -I../upnp/inc -DNDEBUG -DIXML_HAVE_SCRIPTSUPPORT -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/ixmldebug.c  -fPIC -DPIC -o src/.libs/ixmldebug.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/ixml'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/ixml'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I./src/inc -I../upnp/inc  -DNDEBUG -DIXML_HAVE_SCRIPTSUPPORT   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/attr.lo src/attr.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I./src/inc -I../upnp/inc -DNDEBUG -DIXML_HAVE_SCRIPTSUPPORT -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/attr.c  -fPIC -DPIC -o src/.libs/attr.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/ixml'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/ixml'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I./src/inc -I../upnp/inc  -DNDEBUG -DIXML_HAVE_SCRIPTSUPPORT   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/namedNodeMap.lo src/namedNodeMap.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I./src/inc -I../upnp/inc -DNDEBUG -DIXML_HAVE_SCRIPTSUPPORT -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/namedNodeMap.c  -fPIC -DPIC -o src/.libs/namedNodeMap.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/ixml'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/ixml'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I./src/inc -I../upnp/inc  -DNDEBUG -DIXML_HAVE_SCRIPTSUPPORT   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/ixmlmembuf.lo src/ixmlmembuf.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I./src/inc -I../upnp/inc -DNDEBUG -DIXML_HAVE_SCRIPTSUPPORT -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/ixmlmembuf.c  -fPIC -DPIC -o src/.libs/ixmlmembuf.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/ixml'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/ixml'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I./src/inc -I../upnp/inc  -DNDEBUG -DIXML_HAVE_SCRIPTSUPPORT   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/ixml.lo src/ixml.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I./src/inc -I../upnp/inc -DNDEBUG -DIXML_HAVE_SCRIPTSUPPORT -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/ixml.c  -fPIC -DPIC -o src/.libs/ixml.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/ixml'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/ixml'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I./src/inc -I../upnp/inc  -DNDEBUG -DIXML_HAVE_SCRIPTSUPPORT   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/document.lo src/document.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I./src/inc -I../upnp/inc -DNDEBUG -DIXML_HAVE_SCRIPTSUPPORT -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/document.c  -fPIC -DPIC -o src/.libs/document.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/ixml'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/ixml'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I./src/inc -I../upnp/inc  -DNDEBUG -DIXML_HAVE_SCRIPTSUPPORT   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/element.lo src/element.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I./src/inc -I../upnp/inc -DNDEBUG -DIXML_HAVE_SCRIPTSUPPORT -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/element.c  -fPIC -DPIC -o src/.libs/element.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/ixml'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/ixml'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I./src/inc -I../upnp/inc  -DNDEBUG -DIXML_HAVE_SCRIPTSUPPORT   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/nodeList.lo src/nodeList.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I./src/inc -I../upnp/inc -DNDEBUG -DIXML_HAVE_SCRIPTSUPPORT -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/nodeList.c  -fPIC -DPIC -o src/.libs/nodeList.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/ixml'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/ixml'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I./src/inc -I../upnp/inc  -DNDEBUG -DIXML_HAVE_SCRIPTSUPPORT   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/node.lo src/node.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I./src/inc -I../upnp/inc -DNDEBUG -DIXML_HAVE_SCRIPTSUPPORT -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/node.c  -fPIC -DPIC -o src/.libs/node.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/ixml'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/ixml'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I./src/inc -I../upnp/inc  -DNDEBUG -DIXML_HAVE_SCRIPTSUPPORT   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/ixmlparser.lo src/ixmlparser.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I./src/inc -I../upnp/inc -DNDEBUG -DIXML_HAVE_SCRIPTSUPPORT -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/ixmlparser.c  -fPIC -DPIC -o src/.libs/ixmlparser.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/ixml'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/ixml'
/bin/sh ../libtool  --tag=CC   --mode=link gcc  -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -version-info 10:1:0 -export-symbols-regex '^ixml.*' -Wl,-z,relro   -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -o libixml.la -rpath /usr/lib src/attr.lo src/document.lo src/element.lo src/ixml.lo src/ixmldebug.lo src/ixmlparser.lo src/ixmlmembuf.lo src/namedNodeMap.lo src/node.lo src/nodeList.lo  
libtool: link: /usr/bin/nm -B  src/.libs/attr.o src/.libs/document.o src/.libs/element.o src/.libs/ixml.o src/.libs/ixmldebug.o src/.libs/ixmlparser.o src/.libs/ixmlmembuf.o src/.libs/namedNodeMap.o src/.libs/node.o src/.libs/nodeList.o   | sed -n -e 's/^.*[	 ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[	 ][	 ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' | sed '/ __gnu_lto/d' | /usr/bin/sed 's/.* //' | sort | uniq > .libs/libixml.exp
libtool: link: /usr/bin/grep -E -e "^ixml.*" ".libs/libixml.exp" > ".libs/libixml.expT"
libtool: link: mv -f ".libs/libixml.expT" ".libs/libixml.exp"
libtool: link: echo "{ global:" > .libs/libixml.ver
libtool: link:  cat .libs/libixml.exp | sed -e "s/\(.*\)/\1;/" >> .libs/libixml.ver
libtool: link:  echo "local: *; };" >> .libs/libixml.ver
libtool: link:  gcc -shared  -fPIC -DPIC  src/.libs/attr.o src/.libs/document.o src/.libs/element.o src/.libs/ixml.o src/.libs/ixmldebug.o src/.libs/ixmlparser.o src/.libs/ixmlmembuf.o src/.libs/namedNodeMap.o src/.libs/node.o src/.libs/nodeList.o   -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -pthread -O2 -g -fstack-protector-strong -grecord-gcc-switches -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -Os -Wl,-z -Wl,relro -Wl,-z -Wl,now   -pthread -Wl,-soname -Wl,libixml.so.10 -Wl,-version-script -Wl,.libs/libixml.ver -o .libs/libixml.so.10.0.1
libtool: link: (cd ".libs" && rm -f "libixml.so.10" && ln -s "libixml.so.10.0.1" "libixml.so.10")
libtool: link: (cd ".libs" && rm -f "libixml.so" && ln -s "libixml.so.10.0.1" "libixml.so")
libtool: link: ( cd ".libs" && rm -f "libixml.la" && ln -s "../libixml.la" "libixml.la" )
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/ixml'
Making all in upnp
Making all in doc
make[3]: Nothing to be done for 'all'.
Making all in .
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/threadutil/libupnp_la-FreeList.lo `test -f 'src/threadutil/FreeList.c' || echo './'`src/threadutil/FreeList.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/threadutil/FreeList.c  -fPIC -DPIC -o src/threadutil/.libs/libupnp_la-FreeList.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/ssdp/libupnp_la-ssdp_ResultData.lo `test -f 'src/ssdp/ssdp_ResultData.c' || echo './'`src/ssdp/ssdp_ResultData.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/ssdp/ssdp_ResultData.c  -fPIC -DPIC -o src/ssdp/.libs/libupnp_la-ssdp_ResultData.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/threadutil/libupnp_la-LinkedList.lo `test -f 'src/threadutil/LinkedList.c' || echo './'`src/threadutil/LinkedList.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/threadutil/LinkedList.c  -fPIC -DPIC -o src/threadutil/.libs/libupnp_la-LinkedList.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/threadutil/libupnp_la-TimerThread.lo `test -f 'src/threadutil/TimerThread.c' || echo './'`src/threadutil/TimerThread.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/threadutil/TimerThread.c  -fPIC -DPIC -o src/threadutil/.libs/libupnp_la-TimerThread.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/ssdp/libupnp_la-ssdp_device.lo `test -f 'src/ssdp/ssdp_device.c' || echo './'`src/ssdp/ssdp_device.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/ssdp/ssdp_device.c  -fPIC -DPIC -o src/ssdp/.libs/libupnp_la-ssdp_device.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/ssdp/libupnp_la-ssdp_ctrlpt.lo `test -f 'src/ssdp/ssdp_ctrlpt.c' || echo './'`src/ssdp/ssdp_ctrlpt.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/ssdp/ssdp_ctrlpt.c  -fPIC -DPIC -o src/ssdp/.libs/libupnp_la-ssdp_ctrlpt.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/soap/libupnp_la-soap_common.lo `test -f 'src/soap/soap_common.c' || echo './'`src/soap/soap_common.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/soap/soap_common.c  -fPIC -DPIC -o src/soap/.libs/libupnp_la-soap_common.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/threadutil/libupnp_la-ThreadPool.lo `test -f 'src/threadutil/ThreadPool.c' || echo './'`src/threadutil/ThreadPool.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/threadutil/ThreadPool.c  -fPIC -DPIC -o src/threadutil/.libs/libupnp_la-ThreadPool.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/ssdp/libupnp_la-ssdp_server.lo `test -f 'src/ssdp/ssdp_server.c' || echo './'`src/ssdp/ssdp_server.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/ssdp/ssdp_server.c  -fPIC -DPIC -o src/ssdp/.libs/libupnp_la-ssdp_server.o
src/ssdp/ssdp_server.c: In function 'unique_service_name':
src/ssdp/ssdp_server.c:485:9: warning: '%s' directive output may be truncated writing up to 299 bytes into a region of size 177 [-Wformat-truncation=]
     "urn%s", TempBuf);
         ^~   ~~~~~~~
In file included from /usr/include/stdio.h:873,
                 from ../upnp/inc/upnpdebug.h:44,
                 from ./src/inc/service_table.h:48,
                 from ./src/inc/client_table.h:17,
                 from ./src/inc/upnpapi.h:43,
                 from src/ssdp/ssdp_server.c:59:
/usr/include/bits/stdio2.h:67:10: note: '__builtin___snprintf_chk' output between 4 and 303 bytes into a destination of size 180
   return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        __bos (__s), __fmt, __va_arg_pack ());
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/soap/libupnp_la-soap_device.lo `test -f 'src/soap/soap_device.c' || echo './'`src/soap/soap_device.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/soap/soap_device.c  -fPIC -DPIC -o src/soap/.libs/libupnp_la-soap_device.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/soap/libupnp_la-soap_ctrlpt.lo `test -f 'src/soap/soap_ctrlpt.c' || echo './'`src/soap/soap_ctrlpt.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/soap/soap_ctrlpt.c  -fPIC -DPIC -o src/soap/.libs/libupnp_la-soap_ctrlpt.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/genlib/client_table/libupnp_la-ClientSubscription.lo `test -f 'src/genlib/client_table/ClientSubscription.c' || echo './'`src/genlib/client_table/ClientSubscription.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/genlib/client_table/ClientSubscription.c  -fPIC -DPIC -o src/genlib/client_table/.libs/libupnp_la-ClientSubscription.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/genlib/miniserver/libupnp_la-miniserver.lo `test -f 'src/genlib/miniserver/miniserver.c' || echo './'`src/genlib/miniserver/miniserver.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/genlib/miniserver/miniserver.c  -fPIC -DPIC -o src/genlib/miniserver/.libs/libupnp_la-miniserver.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/genlib/client_table/libupnp_la-client_table.lo `test -f 'src/genlib/client_table/client_table.c' || echo './'`src/genlib/client_table/client_table.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/genlib/client_table/client_table.c  -fPIC -DPIC -o src/genlib/client_table/.libs/libupnp_la-client_table.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/genlib/util/libupnp_la-strintmap.lo `test -f 'src/genlib/util/strintmap.c' || echo './'`src/genlib/util/strintmap.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/genlib/util/strintmap.c  -fPIC -DPIC -o src/genlib/util/.libs/libupnp_la-strintmap.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/genlib/util/libupnp_la-upnp_timeout.lo `test -f 'src/genlib/util/upnp_timeout.c' || echo './'`src/genlib/util/upnp_timeout.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/genlib/util/upnp_timeout.c  -fPIC -DPIC -o src/genlib/util/.libs/libupnp_la-upnp_timeout.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/genlib/util/libupnp_la-membuffer.lo `test -f 'src/genlib/util/membuffer.c' || echo './'`src/genlib/util/membuffer.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/genlib/util/membuffer.c  -fPIC -DPIC -o src/genlib/util/.libs/libupnp_la-membuffer.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/genlib/util/libupnp_la-util.lo `test -f 'src/genlib/util/util.c' || echo './'`src/genlib/util/util.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/genlib/util/util.c  -fPIC -DPIC -o src/genlib/util/.libs/libupnp_la-util.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/genlib/service_table/libupnp_la-service_table.lo `test -f 'src/genlib/service_table/service_table.c' || echo './'`src/genlib/service_table/service_table.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/genlib/service_table/service_table.c  -fPIC -DPIC -o src/genlib/service_table/.libs/libupnp_la-service_table.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/genlib/net/libupnp_la-sock.lo `test -f 'src/genlib/net/sock.c' || echo './'`src/genlib/net/sock.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/genlib/net/sock.c  -fPIC -DPIC -o src/genlib/net/.libs/libupnp_la-sock.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/genlib/net/http/libupnp_la-parsetools.lo `test -f 'src/genlib/net/http/parsetools.c' || echo './'`src/genlib/net/http/parsetools.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/genlib/net/http/parsetools.c  -fPIC -DPIC -o src/genlib/net/http/.libs/libupnp_la-parsetools.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/genlib/net/http/libupnp_la-statcodes.lo `test -f 'src/genlib/net/http/statcodes.c' || echo './'`src/genlib/net/http/statcodes.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/genlib/net/http/statcodes.c  -fPIC -DPIC -o src/genlib/net/http/.libs/libupnp_la-statcodes.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/genlib/net/uri/libupnp_la-uri.lo `test -f 'src/genlib/net/uri/uri.c' || echo './'`src/genlib/net/uri/uri.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/genlib/net/uri/uri.c  -fPIC -DPIC -o src/genlib/net/uri/.libs/libupnp_la-uri.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/genlib/net/http/libupnp_la-httpparser.lo `test -f 'src/genlib/net/http/httpparser.c' || echo './'`src/genlib/net/http/httpparser.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/genlib/net/http/httpparser.c  -fPIC -DPIC -o src/genlib/net/http/.libs/libupnp_la-httpparser.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/gena/libupnp_la-gena_callback2.lo `test -f 'src/gena/gena_callback2.c' || echo './'`src/gena/gena_callback2.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/gena/gena_callback2.c  -fPIC -DPIC -o src/gena/.libs/libupnp_la-gena_callback2.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/api/libupnp_la-ActionComplete.lo `test -f 'src/api/ActionComplete.c' || echo './'`src/api/ActionComplete.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/api/ActionComplete.c  -fPIC -DPIC -o src/api/.libs/libupnp_la-ActionComplete.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/genlib/net/http/libupnp_la-webserver.lo `test -f 'src/genlib/net/http/webserver.c' || echo './'`src/genlib/net/http/webserver.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/genlib/net/http/webserver.c  -fPIC -DPIC -o src/genlib/net/http/.libs/libupnp_la-webserver.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/genlib/net/http/libupnp_la-httpreadwrite.lo `test -f 'src/genlib/net/http/httpreadwrite.c' || echo './'`src/genlib/net/http/httpreadwrite.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/genlib/net/http/httpreadwrite.c  -fPIC -DPIC -o src/genlib/net/http/.libs/libupnp_la-httpreadwrite.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/gena/libupnp_la-gena_ctrlpt.lo `test -f 'src/gena/gena_ctrlpt.c' || echo './'`src/gena/gena_ctrlpt.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/gena/gena_ctrlpt.c  -fPIC -DPIC -o src/gena/.libs/libupnp_la-gena_ctrlpt.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/api/libupnp_la-Event.lo `test -f 'src/api/Event.c' || echo './'`src/api/Event.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/api/Event.c  -fPIC -DPIC -o src/api/.libs/libupnp_la-Event.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/api/libupnp_la-ActionRequest.lo `test -f 'src/api/ActionRequest.c' || echo './'`src/api/ActionRequest.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/api/ActionRequest.c  -fPIC -DPIC -o src/api/.libs/libupnp_la-ActionRequest.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/gena/libupnp_la-gena_device.lo `test -f 'src/gena/gena_device.c' || echo './'`src/gena/gena_device.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/gena/gena_device.c  -fPIC -DPIC -o src/gena/.libs/libupnp_la-gena_device.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/api/libupnp_la-FileInfo.lo `test -f 'src/api/FileInfo.c' || echo './'`src/api/FileInfo.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/api/FileInfo.c  -fPIC -DPIC -o src/api/.libs/libupnp_la-FileInfo.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/api/libupnp_la-EventSubscribe.lo `test -f 'src/api/EventSubscribe.c' || echo './'`src/api/EventSubscribe.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/api/EventSubscribe.c  -fPIC -DPIC -o src/api/.libs/libupnp_la-EventSubscribe.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/api/libupnp_la-Discovery.lo `test -f 'src/api/Discovery.c' || echo './'`src/api/Discovery.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/api/Discovery.c  -fPIC -DPIC -o src/api/.libs/libupnp_la-Discovery.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/api/libupnp_la-StateVarComplete.lo `test -f 'src/api/StateVarComplete.c' || echo './'`src/api/StateVarComplete.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/api/StateVarComplete.c  -fPIC -DPIC -o src/api/.libs/libupnp_la-StateVarComplete.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/api/libupnp_la-StateVarRequest.lo `test -f 'src/api/StateVarRequest.c' || echo './'`src/api/StateVarRequest.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/api/StateVarRequest.c  -fPIC -DPIC -o src/api/.libs/libupnp_la-StateVarRequest.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/api/libupnp_la-UpnpString.lo `test -f 'src/api/UpnpString.c' || echo './'`src/api/UpnpString.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/api/UpnpString.c  -fPIC -DPIC -o src/api/.libs/libupnp_la-UpnpString.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/api/libupnp_la-SubscriptionRequest.lo `test -f 'src/api/SubscriptionRequest.c' || echo './'`src/api/SubscriptionRequest.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/api/SubscriptionRequest.c  -fPIC -DPIC -o src/api/.libs/libupnp_la-SubscriptionRequest.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/uuid/libupnp_la-sysdep.lo `test -f 'src/uuid/sysdep.c' || echo './'`src/uuid/sysdep.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/uuid/sysdep.c  -fPIC -DPIC -o src/uuid/.libs/libupnp_la-sysdep.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/uuid/libupnp_la-md5.lo `test -f 'src/uuid/md5.c' || echo './'`src/uuid/md5.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/uuid/md5.c  -fPIC -DPIC -o src/uuid/.libs/libupnp_la-md5.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/uuid/libupnp_la-uuid.lo `test -f 'src/uuid/uuid.c' || echo './'`src/uuid/uuid.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/uuid/uuid.c  -fPIC -DPIC -o src/uuid/.libs/libupnp_la-uuid.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/api/libupnp_la-upnptools.lo `test -f 'src/api/upnptools.c' || echo './'`src/api/upnptools.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/api/upnptools.c  -fPIC -DPIC -o src/api/.libs/libupnp_la-upnptools.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/libupnp_la-inet_pton.lo `test -f 'src/inet_pton.c' || echo './'`src/inet_pton.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/inet_pton.c  -fPIC -DPIC -o src/.libs/libupnp_la-inet_pton.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/urlconfig/libupnp_la-urlconfig.lo `test -f 'src/urlconfig/urlconfig.c' || echo './'`src/urlconfig/urlconfig.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/urlconfig/urlconfig.c  -fPIC -DPIC -o src/urlconfig/.libs/libupnp_la-urlconfig.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
src/urlconfig/urlconfig.c: In function 'configure_urlbase':
src/urlconfig/urlconfig.c:189:28: warning: '%s' directive output may be truncated writing up to 179 bytes into a region of size 173 [-Wformat-truncation=]
  snprintf(descURL, len, "%s%s%s", http_scheme, ipPortStr, alias);
                            ^~
src/urlconfig/urlconfig.c:403:30:
     err_code = calc_descURL( ipaddr_port, new_alias, docURL );
                              ~~~~~~~~~~~
In file included from /usr/include/stdio.h:873,
                 from ../upnp/inc/upnpdebug.h:44,
                 from src/urlconfig/urlconfig.c:42:
/usr/include/bits/stdio2.h:67:10: note: '__builtin___snprintf_chk' output 8 or more bytes (assuming 187) into a destination of size 180
   return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        __bos (__s), __fmt, __va_arg_pack ());
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc  -I./inc -I../ixml/inc  -DNDEBUG -I./src/inc -I./src/threadutil   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o src/api/libupnp_la-upnpapi.lo `test -f 'src/api/upnpapi.c' || echo './'`src/api/upnpapi.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../upnp/inc -I./inc -I../ixml/inc -DNDEBUG -I./src/inc -I./src/threadutil -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c src/api/upnpapi.c  -fPIC -DPIC -o src/api/.libs/libupnp_la-upnpapi.o
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
/bin/sh ../libtool  --tag=CC   --mode=link gcc  -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -version-info 12:0:2 -export-symbols-regex '^Upnp.*' ../ixml/libixml.la -Wl,-z,relro   -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -o libupnp.la -rpath /usr/lib src/threadutil/libupnp_la-FreeList.lo src/threadutil/libupnp_la-LinkedList.lo src/threadutil/libupnp_la-ThreadPool.lo src/threadutil/libupnp_la-TimerThread.lo src/ssdp/libupnp_la-ssdp_ResultData.lo src/ssdp/libupnp_la-ssdp_device.lo src/ssdp/libupnp_la-ssdp_ctrlpt.lo src/ssdp/libupnp_la-ssdp_server.lo src/soap/libupnp_la-soap_device.lo src/soap/libupnp_la-soap_ctrlpt.lo src/soap/libupnp_la-soap_common.lo src/genlib/miniserver/libupnp_la-miniserver.lo src/genlib/client_table/libupnp_la-client_table.lo src/genlib/client_table/libupnp_la-ClientSubscription.lo src/genlib/service_table/libupnp_la-service_table.lo src/genlib/util/libupnp_la-membuffer.lo src/genlib/util/libupnp_la-strintmap.lo src/genlib/util/libupnp_la-upnp_timeout.lo src/genlib/util/libupnp_la-util.lo src/genlib/net/libupnp_la-sock.lo src/genlib/net/http/libupnp_la-httpparser.lo src/genlib/net/http/libupnp_la-httpreadwrite.lo src/genlib/net/http/libupnp_la-statcodes.lo src/genlib/net/http/libupnp_la-webserver.lo src/genlib/net/http/libupnp_la-parsetools.lo src/genlib/net/uri/libupnp_la-uri.lo src/gena/libupnp_la-gena_device.lo src/gena/libupnp_la-gena_ctrlpt.lo src/gena/libupnp_la-gena_callback2.lo src/api/libupnp_la-ActionComplete.lo src/api/libupnp_la-ActionRequest.lo src/api/libupnp_la-Discovery.lo src/api/libupnp_la-Event.lo src/api/libupnp_la-EventSubscribe.lo src/api/libupnp_la-FileInfo.lo src/api/libupnp_la-StateVarComplete.lo src/api/libupnp_la-StateVarRequest.lo src/api/libupnp_la-SubscriptionRequest.lo src/api/libupnp_la-UpnpString.lo src/api/libupnp_la-upnpapi.lo src/api/libupnp_la-upnptools.lo  src/uuid/libupnp_la-md5.lo src/uuid/libupnp_la-sysdep.lo src/uuid/libupnp_la-uuid.lo src/urlconfig/libupnp_la-urlconfig.lo src/libupnp_la-inet_pton.lo  
libtool: link: /usr/bin/nm -B  src/threadutil/.libs/libupnp_la-FreeList.o src/threadutil/.libs/libupnp_la-LinkedList.o src/threadutil/.libs/libupnp_la-ThreadPool.o src/threadutil/.libs/libupnp_la-TimerThread.o src/ssdp/.libs/libupnp_la-ssdp_ResultData.o src/ssdp/.libs/libupnp_la-ssdp_device.o src/ssdp/.libs/libupnp_la-ssdp_ctrlpt.o src/ssdp/.libs/libupnp_la-ssdp_server.o src/soap/.libs/libupnp_la-soap_device.o src/soap/.libs/libupnp_la-soap_ctrlpt.o src/soap/.libs/libupnp_la-soap_common.o src/genlib/miniserver/.libs/libupnp_la-miniserver.o src/genlib/client_table/.libs/libupnp_la-client_table.o src/genlib/client_table/.libs/libupnp_la-ClientSubscription.o src/genlib/service_table/.libs/libupnp_la-service_table.o src/genlib/util/.libs/libupnp_la-membuffer.o src/genlib/util/.libs/libupnp_la-strintmap.o src/genlib/util/.libs/libupnp_la-upnp_timeout.o src/genlib/util/.libs/libupnp_la-util.o src/genlib/net/.libs/libupnp_la-sock.o src/genlib/net/http/.libs/libupnp_la-httpparser.o src/genlib/net/http/.libs/libupnp_la-httpreadwrite.o src/genlib/net/http/.libs/libupnp_la-statcodes.o src/genlib/net/http/.libs/libupnp_la-webserver.o src/genlib/net/http/.libs/libupnp_la-parsetools.o src/genlib/net/uri/.libs/libupnp_la-uri.o src/gena/.libs/libupnp_la-gena_device.o src/gena/.libs/libupnp_la-gena_ctrlpt.o src/gena/.libs/libupnp_la-gena_callback2.o src/api/.libs/libupnp_la-ActionComplete.o src/api/.libs/libupnp_la-ActionRequest.o src/api/.libs/libupnp_la-Discovery.o src/api/.libs/libupnp_la-Event.o src/api/.libs/libupnp_la-EventSubscribe.o src/api/.libs/libupnp_la-FileInfo.o src/api/.libs/libupnp_la-StateVarComplete.o src/api/.libs/libupnp_la-StateVarRequest.o src/api/.libs/libupnp_la-SubscriptionRequest.o src/api/.libs/libupnp_la-UpnpString.o src/api/.libs/libupnp_la-upnpapi.o src/api/.libs/libupnp_la-upnptools.o src/uuid/.libs/libupnp_la-md5.o src/uuid/.libs/libupnp_la-sysdep.o src/uuid/.libs/libupnp_la-uuid.o src/urlconfig/.libs/libupnp_la-urlconfig.o src/.libs/libupnp_la-inet_pton.o   | sed -n -e 's/^.*[	 ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[	 ][	 ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' | sed '/ __gnu_lto/d' | /usr/bin/sed 's/.* //' | sort | uniq > .libs/libupnp.exp
libtool: link: /usr/bin/grep -E -e "^Upnp.*" ".libs/libupnp.exp" > ".libs/libupnp.expT"
libtool: link: mv -f ".libs/libupnp.expT" ".libs/libupnp.exp"
libtool: link: echo "{ global:" > .libs/libupnp.ver
libtool: link:  cat .libs/libupnp.exp | sed -e "s/\(.*\)/\1;/" >> .libs/libupnp.ver
libtool: link:  echo "local: *; };" >> .libs/libupnp.ver
libtool: link:  gcc -shared  -fPIC -DPIC  src/threadutil/.libs/libupnp_la-FreeList.o src/threadutil/.libs/libupnp_la-LinkedList.o src/threadutil/.libs/libupnp_la-ThreadPool.o src/threadutil/.libs/libupnp_la-TimerThread.o src/ssdp/.libs/libupnp_la-ssdp_ResultData.o src/ssdp/.libs/libupnp_la-ssdp_device.o src/ssdp/.libs/libupnp_la-ssdp_ctrlpt.o src/ssdp/.libs/libupnp_la-ssdp_server.o src/soap/.libs/libupnp_la-soap_device.o src/soap/.libs/libupnp_la-soap_ctrlpt.o src/soap/.libs/libupnp_la-soap_common.o src/genlib/miniserver/.libs/libupnp_la-miniserver.o src/genlib/client_table/.libs/libupnp_la-client_table.o src/genlib/client_table/.libs/libupnp_la-ClientSubscription.o src/genlib/service_table/.libs/libupnp_la-service_table.o src/genlib/util/.libs/libupnp_la-membuffer.o src/genlib/util/.libs/libupnp_la-strintmap.o src/genlib/util/.libs/libupnp_la-upnp_timeout.o src/genlib/util/.libs/libupnp_la-util.o src/genlib/net/.libs/libupnp_la-sock.o src/genlib/net/http/.libs/libupnp_la-httpparser.o src/genlib/net/http/.libs/libupnp_la-httpreadwrite.o src/genlib/net/http/.libs/libupnp_la-statcodes.o src/genlib/net/http/.libs/libupnp_la-webserver.o src/genlib/net/http/.libs/libupnp_la-parsetools.o src/genlib/net/uri/.libs/libupnp_la-uri.o src/gena/.libs/libupnp_la-gena_device.o src/gena/.libs/libupnp_la-gena_ctrlpt.o src/gena/.libs/libupnp_la-gena_callback2.o src/api/.libs/libupnp_la-ActionComplete.o src/api/.libs/libupnp_la-ActionRequest.o src/api/.libs/libupnp_la-Discovery.o src/api/.libs/libupnp_la-Event.o src/api/.libs/libupnp_la-EventSubscribe.o src/api/.libs/libupnp_la-FileInfo.o src/api/.libs/libupnp_la-StateVarComplete.o src/api/.libs/libupnp_la-StateVarRequest.o src/api/.libs/libupnp_la-SubscriptionRequest.o src/api/.libs/libupnp_la-UpnpString.o src/api/.libs/libupnp_la-upnpapi.o src/api/.libs/libupnp_la-upnptools.o src/uuid/.libs/libupnp_la-md5.o src/uuid/.libs/libupnp_la-sysdep.o src/uuid/.libs/libupnp_la-uuid.o src/urlconfig/.libs/libupnp_la-urlconfig.o src/.libs/libupnp_la-inet_pton.o   ../ixml/.libs/libixml.so -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -pthread -O2 -g -fstack-protector-strong -grecord-gcc-switches -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -Os -Wl,-z -Wl,relro -Wl,-z -Wl,now   -pthread -Wl,-soname -Wl,libupnp.so.10 -Wl,-version-script -Wl,.libs/libupnp.ver -o .libs/libupnp.so.10.2.0
libtool: link: (cd ".libs" && rm -f "libupnp.so.10" && ln -s "libupnp.so.10.2.0" "libupnp.so.10")
libtool: link: (cd ".libs" && rm -f "libupnp.so" && ln -s "libupnp.so.10.2.0" "libupnp.so")
libtool: link: ( cd ".libs" && rm -f "libupnp.la" && ln -s "../libupnp.la" "libupnp.la" )
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp'
Making all in sample
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp/sample'
gcc -DHAVE_CONFIG_H -I. -I../.. -I../../upnp/inc  -I../../upnp/inc -I../../ixml/inc -I./common/ -I./tvctrlpt   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o linux/tv_ctrlpt-tv_ctrlpt_main.o `test -f 'linux/tv_ctrlpt_main.c' || echo './'`linux/tv_ctrlpt_main.c
In file included from ../../upnp/inc/upnp.h:402,
                 from ./common/sample_util.h:49,
                 from linux/tv_ctrlpt_main.c:32:
../../upnp/inc/FileInfo.h:22:2: error: #error libupnp uses large file support, so users must do that, too
 #error libupnp uses large file support, so users must do that, too
  ^~~~~
make[3]: *** [Makefile:645: linux/tv_ctrlpt-tv_ctrlpt_main.o] Error 1
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp/sample'
make[3]: *** Waiting for unfinished jobs....
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp/sample'
gcc -DHAVE_CONFIG_H -I. -I../.. -I../../upnp/inc  -I../../upnp/inc -I../../ixml/inc -I./common/ -I./tvctrlpt   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o common/tv_ctrlpt-sample_util.o `test -f 'common/sample_util.c' || echo './'`common/sample_util.c
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp/sample'
In file included from ../../upnp/inc/upnp.h:402,
                 from common/sample_util.h:49,
                 from common/sample_util.c:42:
../../upnp/inc/FileInfo.h:22:2: error: #error libupnp uses large file support, so users must do that, too
 #error libupnp uses large file support, so users must do that, too
  ^~~~~
make[3]: *** [Makefile:617: common/tv_ctrlpt-sample_util.o] Error 1
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp/sample'
gcc -DHAVE_CONFIG_H -I. -I../.. -I../../upnp/inc  -I../../upnp/inc -I../../ixml/inc -I./common/ -I./tvdevice   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o common/tv_device-sample_util.o `test -f 'common/sample_util.c' || echo './'`common/sample_util.c
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp/sample'
In file included from ../../upnp/inc/upnp.h:402,
                 from common/sample_util.h:49,
                 from common/sample_util.c:42:
../../upnp/inc/FileInfo.h:22:2: error: #error libupnp uses large file support, so users must do that, too
 #error libupnp uses large file support, so users must do that, too
  ^~~~~
make[3]: *** [Makefile:659: common/tv_device-sample_util.o] Error 1
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp/sample'
gcc -DHAVE_CONFIG_H -I. -I../.. -I../../upnp/inc  -I../../upnp/inc -I../../ixml/inc -I./common/ -I./tvcombo   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o common/tv_combo-tv_ctrlpt.o `test -f 'common/tv_ctrlpt.c' || echo './'`common/tv_ctrlpt.c
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp/sample'
In file included from ../../upnp/inc/upnp.h:402,
                 from common/sample_util.h:49,
                 from common/tv_ctrlpt.h:51,
                 from common/tv_ctrlpt.c:44:
../../upnp/inc/FileInfo.h:22:2: error: #error libupnp uses large file support, so users must do that, too
 #error libupnp uses large file support, so users must do that, too
  ^~~~~
make[3]: *** [Makefile:575: common/tv_combo-tv_ctrlpt.o] Error 1
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp/sample'
gcc -DHAVE_CONFIG_H -I. -I../.. -I../../upnp/inc  -I../../upnp/inc -I../../ixml/inc -I./common/ -I./tvcombo   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o common/tv_combo-sample_util.o `test -f 'common/sample_util.c' || echo './'`common/sample_util.c
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp/sample'
In file included from ../../upnp/inc/upnp.h:402,
                 from common/sample_util.h:49,
                 from common/sample_util.c:42:
../../upnp/inc/FileInfo.h:22:2: error: #error libupnp uses large file support, so users must do that, too
 #error libupnp uses large file support, so users must do that, too
  ^~~~~
make[3]: *** [Makefile:561: common/tv_combo-sample_util.o] Error 1
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp/sample'
gcc -DHAVE_CONFIG_H -I. -I../.. -I../../upnp/inc  -I../../upnp/inc -I../../ixml/inc -I./common/ -I./tvcombo   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o linux/tv_combo-tv_combo_main.o `test -f 'linux/tv_combo_main.c' || echo './'`linux/tv_combo_main.c
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp/sample'
In file included from ../../upnp/inc/upnp.h:402,
                 from ./common/sample_util.h:49,
                 from linux/tv_combo_main.c:32:
../../upnp/inc/FileInfo.h:22:2: error: #error libupnp uses large file support, so users must do that, too
 #error libupnp uses large file support, so users must do that, too
  ^~~~~
make[3]: *** [Makefile:603: linux/tv_combo-tv_combo_main.o] Error 1
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp/sample'
gcc -DHAVE_CONFIG_H -I. -I../.. -I../../upnp/inc  -I../../upnp/inc -I../../ixml/inc -I./common/ -I./tvctrlpt   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o common/tv_ctrlpt-tv_ctrlpt.o `test -f 'common/tv_ctrlpt.c' || echo './'`common/tv_ctrlpt.c
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp/sample'
make[3]: Entering directory '/builddir/build/BUILD/libupnp-1.8.3/upnp/sample'
gcc -DHAVE_CONFIG_H -I. -I../.. -I../../upnp/inc  -I../../upnp/inc -I../../ixml/inc -I./common/ -I./tvcombo   -pthread -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Os -c -o common/tv_combo-tv_device.o `test -f 'common/tv_device.c' || echo './'`common/tv_device.c
make[3]: Leaving directory '/builddir/build/BUILD/libupnp-1.8.3/upnp/sample'
In file included from ../../upnp/inc/upnp.h:402,
                 from common/sample_util.h:49,
                 from common/tv_ctrlpt.h:51,
                 from common/tv_ctrlpt.c:44:
../../upnp/inc/FileInfo.h:22:2: error: #error libupnp uses large file support, so users must do that, too
 #error libupnp uses large file support, so users must do that, too
  ^~~~~
make[3]: *** [Makefile:631: common/tv_ctrlpt-tv_ctrlpt.o] Error 1
In file included from ../../upnp/inc/upnp.h:402,
                 from common/sample_util.h:49,
                 from common/tv_device.h:54,
                 from common/tv_device.c:44:
../../upnp/inc/FileInfo.h:22:2: error: #error libupnp uses large file support, so users must do that, too
 #error libupnp uses large file support, so users must do that, too
  ^~~~~
make[3]: *** [Makefile:589: common/tv_combo-tv_device.o] Error 1
make[2]: *** [Makefile:1598: all-recursive] Error 1
make[1]: *** [Makefile:501: all-recursive] Error 1
make: *** [Makefile:402: all] Error 2```

upnpdebug module is not well-behaved

There is quite a lot of weirdness in the current debug log module:

  • Will try to create some output files if the application is not careful to prevent it.
  • At least part of the output goes to stdout by default
  • Multiple calls to UpnpInitLog() will lose file pointers
  • A call to UpnpCloseLog() may crash or close stdout/stderr depending on the current state of things
  • The level of each message is not printed to the log so that you can't filter the output on the value
  • Etc.

Also a question: does anybody know what DEBUG_TARGET is meant for ? I can't make sense of it.

I understand that some of these things (for example using stdout) may be a question of taste, so I submit the following specification for discussion only for now:

  • Write nothing and create no files by default (or, alternatively, write errors to stderr, please state pref).
  • Accept any sequence of init/close/print without crashing or leaking resources.
  • Never ever write anything to stdout, the app may use it to pipe stuff out (imho everybody expects the garbage to go to stderr).
  • Use a single file with enough data in each message to enable filtering what you want. Using 2 files is unnecessary and makes it difficult to relate errors and debug messages.
  • Minimum change to the message format (add level and target), in a way unlikely to confuse a hypothetical existing parser.
  • No change to the API, except that some some parameters may be ignored (e.g. the 2nd file name).

Nothing urgent, but I hope that someone will care to comment... Obviously I volunteer to implement the changes.

UpnpFileInfo weirdness on ARM

For some reason, running the below on ARM is giving me the output below.

Code snippet

    off_t temp = 1024;
    log_debug(">>> TEMP %d\n", temp);
    UpnpFileInfo_set_FileLength(info, temp); 
    log_debug(">>> SIZE %jd\n", (intmax_t)UpnpFileInfo_get_FileLength(info));

Output

2017-08-13 14:59:02   DEBUG: [src/web_request_handler.cc:101] get_info(): >>> TEMP 1024
2017-08-13 14:59:02   DEBUG: [src/web_request_handler.cc:103] get_info(): >>> SIZE 1

Ive looked at the code, and I have no clue, as it appears to just assingn and read from a struct... and it appears to be fine on AMD64.

No response to SSDP search/discover packets on IPv6

(This is a follow-up to this gerbera bug report where it was suggested that the gerbera issue I'm having may be rooted in pupnp.)

Using gerbera, built with pupnp 1.8.4 on Debian buster, the gerbera daemon binds to my LAN-facing interface as configured. For IPv6, it binds to the applicable link-local address.

VLC, on a different client machine, when searching for DLNA services on the LAN, sends out SSDP queries using both IPv4 and IPv6 (ff02::c and ff05::c). Oddly, gerbera only responds on IPv4. It receives the IPv6 packets sent to ff02::c (according to debug output), and the daemon's HTTP interface is up and reachable on IPv6, but the daemon doesn't respond to VLC (except on IPv4). Thus if IPv4 is firewalled-off, VLC can't find gerbera on the LAN.

Is this intentional, a bug, or does gerbera simply not fully support the IPv6 capabilities available in pupnp? To quote the gerbera bug report linked to above: "I cant see anywhere we do anything odd, in the case you pass an interface name we pass that straight into libupnp's UpnpInit2 function."

Grateful for any assistance.

Add LFS flags to pkg-config?

This bug was reported against the Debian package:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=913541#16

The main issue is Debian specific, but one of the suggestions to fixing it was adding LFS flags to the pkg-config file so that reverse-dependencies are built with LFS automatically. I'm torn on this issue because while it is useful, it might "surprise" rdeps who might not realize they are getting built in LFS mode, and if they're poorly programmed they might break.

I'm filing this here in the hope of getting other people's opinions on this :)

New 1.8.1 release?

Hi,

Please make a new release of the changes since 1.8. I am especially interested in the SO_READDR stuff being available in a released version.

Thanks!

Libupnp error with Gerbera/DD-WRT/Entware

Hi,
I am refering to this bug:
https://sourceforge.net/p/pupnp/bugs/138/

I also found the bug meanwhile (at least it works for me).
See upnpapi.c at line 3574:

/* Cycle through the list of interfaces looking for IP addresses.  */
	for (i = (size_t)0; i < (size_t)ifConf.ifc_len;) {
		struct ifreq *pifReq =
		    (struct ifreq *)((caddr_t) ifConf.ifc_req + i);
//		i += sizeof *pifReq; <<<<<<< removed
		i += sizeof ifConf.ifc_req; <<< insert
		/* See if this is the sort of interface we want to deal with. */
		memset(ifReq.ifr_name, 0, sizeof(ifReq.ifr_name));
		strncpy(ifReq.ifr_name, pifReq->ifr_name,

As I am not familar with patch and so on I hope it is understandable. Could someone change this in source with next commit?

Thanks.

threadutil library has no public headers

I notice the threadutil library has no public headers so no library except libupnp can use it. Is this an oversight? If not and if it's supposed to be a private library, can the makefiles be adjusted to compile it as a static library so we don't need to install another .so?

Installation Collisions with 1.6

Hi,

When trying to install 1.8.2 alongside 1.6, I now get:

 * Detected file collision(s):
 * 
 *      /usr/lib/debug/usr/bin/tv_device.debug
 *      /usr/lib/debug/usr/bin/tv_combo.debug
 *      /usr/lib/debug/usr/bin/tv_ctrlpt.debug
 *      /usr/bin/tv_combo
 *      /usr/bin/tv_ctrlpt
 *      /usr/bin/tv_device
 *      /usr/include/upnp/ithread.h
 *      /usr/include/upnp/upnptools.h
 *      /usr/include/upnp/UpnpUniStd.h
 *      /usr/include/upnp/UpnpStdInt.h
 *      /usr/include/upnp/UpnpIntTypes.h
 *      /usr/include/upnp/UpnpInet.h
 *      /usr/include/upnp/UpnpGlobal.h
 *      /usr/include/upnp/upnpdebug.h
 *      /usr/include/upnp/upnp.h
 *      /usr/include/upnp/UpnpString.h
 *      /usr/include/upnp/upnpconfig.h
 *      /usr/include/upnp/ixmldebug.h
 *      /usr/include/upnp/ixml.h
 *      /usr/lib64/pkgconfig/libupnp.pc
 *      /usr/lib64/libupnp.so
 *      /usr/lib64/libixml.so

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.