1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-20 04:02:27 +00:00

Fix build with gcc-3.4

PR:		ports/70628
Submitted by:	Ports Fury
This commit is contained in:
Kirill Ponomarev 2004-08-18 18:15:53 +00:00
parent 1100885686
commit c55cb70deb
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=116616
4 changed files with 122 additions and 30 deletions

View File

@ -15,11 +15,11 @@ MASTER_SITES= http://www.pxh.de/fs/gsmlib/download/
MAINTAINER= ports@FreeBSD.org
COMMENT= A library to access GSM mobile phones through GSM modems
USE_GNOME= gnometarget lthack
USE_GETOPT_LONG= yes
USE_REINPLACE= yes
USE_GMAKE= yes
USE_INC_LIBTOOL_VER= 13
CONFIGURE_TARGET= --build=${MACHINE_ARCH}-portbld-freebsd${OSREL}
CONFIGURE_ENV= CPPFLAGS="${CPPFLAGS}" LDFLAGS="${LDFLAGS}"
INSTALLS_SHLIB= yes
@ -31,22 +31,16 @@ CPPFLAGS= -I${LOCALBASE}/include -DBROKEN_STRFTIME -DHAVE_DECL_GETOPT \
${PTHREAD_CFLAGS}
LDFLAGS= -L${LOCALBASE}/lib ${PTHREAD_LIBS}
.if !defined(WITHOUT_NLS)
USE_GETTEXT= yes
PLIST_SUB+= NLS=""
.else
.if defined(WITHOUT_NLS)
CONFIGURE_ARGS+= --disable-nls
PLIST_SUB+= NLS="@comment "
.endif
.include <bsd.port.pre.mk>
.if ${OSVERSION} >= 502126
BROKEN= "Does not compile with gcc 3.4.2"
.else
USE_GETTEXT= yes
PLIST_SUB+= NLS=""
.endif
post-patch:
@${GREP} -lR "<malloc.h>" ${WRKSRC} | ${XARGS} ${REINPLACE_CMD} -e \
's|<malloc\.h>|<stdlib.h>|g'
.include <bsd.port.post.mk>
.include <bsd.port.mk>

View File

@ -1,10 +0,0 @@
--- configure.orig Thu Oct 17 05:23:09 2002
+++ configure Sat Nov 30 07:16:22 2002
@@ -7400,6 +7400,7 @@
# This can be used to rebuild libtool when needed
LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
+$ac_aux_dir/ltconfig $LIBTOOL_DEPS
# Always use our own libtool.
LIBTOOL='$(SHELL) $(top_builddir)/libtool'

View File

@ -0,0 +1,34 @@
--- gsmlib/gsm_map_key.h.orig Wed May 15 04:38:12 2002
+++ gsmlib/gsm_map_key.h Wed Aug 18 22:19:20 2004
@@ -25,6 +25,16 @@
// wrapper for map key, can access Sortedtore to get sortOrder()
+ template <class SortedStore> class MapKey;
+
+ // compare two keys
+ template <class SortedStore>
+ extern bool operator<(const MapKey<SortedStore> &x,
+ const MapKey<SortedStore> &y);
+ template <class SortedStore>
+ extern bool operator==(const MapKey<SortedStore> &x,
+ const MapKey<SortedStore> &y);
+
template <class SortedStore> class MapKey
{
SortedStore &_myStore; // my store
@@ -61,14 +71,6 @@
const MapKey<SortedStore> &y);
};
- // compare two keys
- template <class SortedStore>
- extern bool operator<(const MapKey<SortedStore> &x,
- const MapKey<SortedStore> &y);
- template <class SortedStore>
- extern bool operator==(const MapKey<SortedStore> &x,
- const MapKey<SortedStore> &y);
-
// MapKey members
template <class SortedStore>

View File

@ -1,10 +1,84 @@
--- gsmlib/gsm_unix_serial.cc.orig Thu Jul 17 20:44:42 2003
+++ gsmlib/gsm_unix_serial.cc Thu Jul 17 20:44:54 2003
@@ -16,6 +16,7 @@
#include <gsmlib/gsm_nls.h>
#include <gsmlib/gsm_unix_serial.h>
#include <gsmlib/gsm_util.h>
+#include <assert.h>
#include <termios.h>
--- gsmlib/gsm_unix_serial.cc.orig Sun Sep 22 20:51:10 2002
+++ gsmlib/gsm_unix_serial.cc Wed Aug 18 01:27:08 2004
@@ -20,6 +20,7 @@
#include <fcntl.h>
#include <iostream>
#include <strstream>
+#include <cassert>
#include <errno.h>
#include <stdio.h>
#include <unistd.h>
@@ -178,11 +179,15 @@
// switch off non-blocking mode
int fdFlags;
- if ((fdFlags = fcntl(_fd, F_GETFL)) == -1)
+ if ((fdFlags = fcntl(_fd, F_GETFL)) == -1) {
+ close(_fd);
throwModemException(_("getting file status flags failed"));
+ }
fdFlags &= ~O_NONBLOCK;
- if (fcntl(_fd, F_SETFL, fdFlags) == -1)
+ if (fcntl(_fd, F_SETFL, fdFlags) == -1) {
+ close(_fd);
throwModemException(_("switching of non-blocking mode failed"));
+ }
long int saveTimeoutVal = _timeoutVal;
_timeoutVal = 3;
@@ -194,17 +199,22 @@
// toggle DTR to reset modem
int mctl = TIOCM_DTR;
- if (ioctl(_fd, TIOCMBIC, &mctl) < 0)
+ if (ioctl(_fd, TIOCMBIC, &mctl) < 0) {
+ close(_fd);
throwModemException(_("clearing DTR failed"));
+ }
// the waiting time for DTR toggling is increased with each loop
usleep(holdoff[initTries]);
- if (ioctl(_fd, TIOCMBIS, &mctl) < 0)
+ if (ioctl(_fd, TIOCMBIS, &mctl) < 0) {
+ close(_fd);
throwModemException(_("setting DTR failed"));
-
+ }
// get line modes
- if (tcgetattr(_fd, &t) < 0)
+ if (tcgetattr(_fd, &t) < 0) {
+ close(_fd);
throwModemException(stringPrintf(_("tcgetattr device '%s'"),
device.c_str()));
+ }
// set line speed
cfsetispeed(&t, lineSpeed);
@@ -229,9 +239,11 @@
t.c_cc[VSUSP] = 0;
// write back
- if(tcsetattr (_fd, TCSANOW, &t) < 0)
+ if(tcsetattr (_fd, TCSANOW, &t) < 0) {
+ close(_fd);
throwModemException(stringPrintf(_("tcsetattr device '%s'"),
device.c_str()));
+ }
// the waiting time for writing to the ME/TA is increased with each loop
usleep(holdoff[initTries]);
@@ -279,11 +291,14 @@
catch (GsmException &e)
{
_timeoutVal = saveTimeoutVal;
- if (initTries == 0)
+ if (initTries == 0) {
+ close(_fd);
throw e;
+ }
}
}
// no response after 3 tries
+ close(_fd);
throw GsmException(stringPrintf(_("reset modem failed '%s'"),
device.c_str()), OtherError);
}