Source: condor
Version: 7.7.6~dfsg.1-1
Severity: important
Tags: upstream

Condor fails to build from source (FTBFS) on ia64 due to a change that
was introduced with 7.7.6.

Successful build of 7.7.5

 
https://buildd.debian.org/status/fetch.php?pkg=condor&arch=ia64&ver=7.7.5%7Edfsg.1-2&stamp=1332117436

Failed build of 7.7.6

 
https://buildd.debian.org/status/fetch.php?pkg=condor&arch=ia64&ver=7.7.6%7Edfsg.1-1&stamp=1335297668

Relevant portion of the fail log:

=================================
cd 
"/build/buildd-condor_7.7.6~dfsg.1-1-ia64-qialEI/condor-7.7.6~dfsg.1/obj-ia64-linux-gnu/src/condor_shadow.V6.1"
 && /usr/bin/c++   -D_FORTIFY_SOURCE=2 -DLINUX=\"LINUX_2.6.32-BPO.5-MCKINLEY\" 
-DPLATFORM=\"IA64-Debian_\" -DPRE_RELEASE_STR="\" Debian-7.7.6~dfsg.1-1\"" 
-DCONDOR_VERSION=\"7.7.6\" -DBUILD_DATE="\"Apr 24 2012\"" -DHAVE_CONFIG_H 
-DWITH_OPENSSL -DGLIBC=GLIBC -DGLIBC213=GLIBC213 -DIA64=IA64 -Wall -W -Wextra 
-Wfloat-equal -Wshadow -Wendif-labels -Wpointer-arith -Wcast-qual -Wcast-align 
-Wvolatile-register-var -fstack-protector -rdynamic -g 
-I"/build/buildd-condor_7.7.6~dfsg.1-1-ia64-qialEI/condor-7.7.6~dfsg.1/obj-ia64-linux-gnu/bld_external/classads-7.7.6/install/include"
 -I/usr/include/globus -I/usr/lib64/globus/include -I/usr/lib/globus/include 
-I"/build/buildd-condor_7.7.6~dfsg.1-1-ia64-qialEI/condor-7.7.6~dfsg.1/src/condor_includes"
 
-I"/build/buildd-condor_7.7.6~dfsg.1-1-ia64-qialEI/condor-7.7.6~dfsg.1/obj-ia64-linux-gnu/src/condor_includes"
 -I"/build/buildd-condo
 r_7.7.6~dfsg.1-1-ia64-qialEI/condor-7.7.6~dfsg.1/src/condor_utils" 
-I"/build/buildd-condor_7.7.6~dfsg.1-1-ia64-qialEI/condor-7.7.6~dfsg.1/obj-ia64-linux-gnu/src/condor_utils"
 
-I"/build/buildd-condor_7.7.6~dfsg.1-1-ia64-qialEI/condor-7.7.6~dfsg.1/src/condor_daemon_core.V6"
 
-I"/build/buildd-condor_7.7.6~dfsg.1-1-ia64-qialEI/condor-7.7.6~dfsg.1/src/condor_daemon_client"
 
-I"/build/buildd-condor_7.7.6~dfsg.1-1-ia64-qialEI/condor-7.7.6~dfsg.1/src/ccb" 
-I"/build/buildd-condor_7.7.6~dfsg.1-1-ia64-qialEI/condor-7.7.6~dfsg.1/src/condor_io"
 -I"/build/buildd-condor_7.7.6~dfsg.1-1-ia64-qialEI/condor-7.7.6~dfsg.1/src/h" 
-I"/build/buildd-condor_7.7.6~dfsg.1-1-ia64-qialEI/condor-7.7.6~dfsg.1/obj-ia64-linux-gnu/src/h"
 
-I"/build/buildd-condor_7.7.6~dfsg.1-1-ia64-qialEI/condor-7.7.6~dfsg.1/src/classad"
 
-I"/build/buildd-condor_7.7.6~dfsg.1-1-ia64-qialEI/condor-7.7.6~dfsg.1/src/safefile"
 
-I"/build/buildd-condor_7.7.6~dfsg.1-1-ia64-qialEI/condor-7.7.6~dfsg.1/obj-ia64-linux-gnu/src/safefile"
    -o
  CMakeFiles/condor_shadow.dir/remoteresource.cpp.o -c 
"/build/buildd-condor_7.7.6~dfsg.1-1-ia64-qialEI/condor-7.7.6~dfsg.1/src/condor_shadow.V6.1/remoteresource.cpp"
/build/buildd-condor_7.7.6~dfsg.1-1-ia64-qialEI/condor-7.7.6~dfsg.1/src/condor_shadow.V6.1/remoteresource.cpp:1:0:
 warning: -fstack-protector not supported for this target [enabled by default]
/build/buildd-condor_7.7.6~dfsg.1-1-ia64-qialEI/condor-7.7.6~dfsg.1/src/condor_shadow.V6.1/remoteresource.cpp:
 In member function 'virtual void 
RemoteResource::updateFromStarter(compat_classad::ClassAd*)':
/build/buildd-condor_7.7.6~dfsg.1-1-ia64-qialEI/condor-7.7.6~dfsg.1/src/condor_shadow.V6.1/remoteresource.cpp:1214:61:
 error: no matching function for call to 
'compat_classad::ClassAd::EvalInteger(const char* const&, NULL, int64_t&)'
/build/buildd-condor_7.7.6~dfsg.1-1-ia64-qialEI/condor-7.7.6~dfsg.1/src/condor_shadow.V6.1/remoteresource.cpp:1214:61:
 note: candidates are:
/build/buildd-condor_7.7.6~dfsg.1-1-ia64-qialEI/condor-7.7.6~dfsg.1/src/condor_utils/compat_classad.h:352:6:
 note: int compat_classad::ClassAd::EvalInteger(const char*, classad::ClassAd*, 
int&)
/build/buildd-condor_7.7.6~dfsg.1-1-ia64-qialEI/condor-7.7.6~dfsg.1/src/condor_utils/compat_classad.h:352:6:
 note:   no known conversion for argument 3 from 'int64_t {aka long int}' to 
'int&'
/build/buildd-condor_7.7.6~dfsg.1-1-ia64-qialEI/condor-7.7.6~dfsg.1/src/condor_utils/compat_classad.h:353:6:
 note: int compat_classad::ClassAd::EvalInteger(const char*, classad::ClassAd*, 
long long int&)
/build/buildd-condor_7.7.6~dfsg.1-1-ia64-qialEI/condor-7.7.6~dfsg.1/src/condor_utils/compat_classad.h:353:6:
 note:   no known conversion for argument 3 from 'int64_t {aka long int}' to 
'long long int&'
make[4]: *** 
[src/condor_shadow.V6.1/CMakeFiles/condor_shadow.dir/remoteresource.cpp.o] 
Error 1
=================================

This looks like a data type issue that seems to have its origin in a
change to compat_classad.h that was introduced with 7.7.6.

Related Git commits are:

c2601f0db1df9e6869b7fe66070e7c6c9595922a
2e757aaa65299d21ae93137c56db657360bb2327
7fbb9e370a8d2ff8a7e2bbec4c8cedd36eabaeed
ac250a697b424984139f9d876c597dc3598f2070


% git diff debian/7.7.5_dfsg.1-2 -- src/condor_utils/compat_classad.h
diff --git a/src/condor_utils/compat_classad.h 
b/src/condor_utils/compat_classad.h
index 1a17d79..2d08a6d 100644
--- a/src/condor_utils/compat_classad.h
+++ b/src/condor_utils/compat_classad.h
@@ -26,6 +26,20 @@
 class StringList;
 class Stream;
 
+// hopefully this can go away when classads has native support for 64bit int
+// in the mean time, we want to do the conversion as close to the classad api
+// as possible.
+#ifndef classad_int64
+# ifdef WIN32
+# define classad_int64 __int64
+# elif defined(__x86_64__) && ! defined(Darwin)
+# define classad_int64_is_long
+# define classad_int64 long
+# else
+# define classad_int64 long long
+# endif
+#endif
+
 #ifndef TRUE
 #define TRUE  1
 #endif
@@ -191,7 +205,12 @@ class ClassAd : public classad::ClassAd
        int Assign(char const *name,unsigned int value)
        { return InsertAttr( name, (int)value) ? TRUE : FALSE; }
 
-       int Assign(char const *name,long value)
+#if ! defined classad_int64_is_long
+       int Assign(char const *name,long value) // TJ: fix for int64 classad
+       { return InsertAttr( name, (int)value) ? TRUE : FALSE; }
+#endif
+
+       int Assign(char const *name,classad_int64 value) // TJ: fix for int64 
classad
        { return InsertAttr( name, (int)value) ? TRUE : FALSE; }
 
        int Assign(char const *name,unsigned long value)
@@ -263,6 +282,13 @@ class ClassAd : public classad::ClassAd
                 *  @return true if the attribute exists and is a float, false 
otherwise
                 */
 
+       int LookupInteger(const char *name, int64_t &value) const;
+               /** Lookup (don't evaluate) an attribute that is a float.
+                *  @param name The attribute
+                *  @param value The integer
+                *  @return true if the attribute exists and is a float, false 
otherwise
+                */
+
        int LookupFloat(const char *name, float &value) const;
 
                /** Lookup (don't evaluate) an attribute that can be considered 
a boolean
@@ -324,6 +350,12 @@ class ClassAd : public classad::ClassAd
                 *  but is not an integer
                 */
        int EvalInteger (const char *name, classad::ClassAd *target, int 
&value);
+       int EvalInteger (const char *name, classad::ClassAd *target, 
classad_int64 & value) {
+               int ival;
+               int result = EvalInteger(name, target, ival);  // TJ: fix for 
int64 classad
+               value = ival;
+               return result;
+       }
 
                /** Lookup and evaluate an attribute in the ClassAd that is a 
float
                 *  @param name The name of the attribute
@@ -333,7 +365,13 @@ class ClassAd : public classad::ClassAd
                 *  but is not a float.
                 */
 
-       int EvalFloat (const char *name, classad::ClassAd *target, float 
&value);
+       int EvalFloat (const char *name, classad::ClassAd *target, double 
&value);
+       int EvalFloat (const char *name, classad::ClassAd *target, float 
&value) {
+               double dval;
+               int result = EvalFloat(name, target, dval);
+               value = dval;
+               return result;
+       }
 
                /** Lookup and evaluate an attribute in the ClassAd that is a 
boolean
                 *  @param name The name of the attribute



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to