PHP 5.2.4 + OCI8 Compile Issues on RHEL4
Hiya,
i've been looking around and can't really find anything to help with this issue, i have installed the oracle RPMS:
[root@proxy2 php-5.2.4]# rpm -qa | grep -i oracle
oracle-instantclient-basic-11.1.0.1-1
oracle-instantclient-devel-11.1.0.1-1
oracle-instantclient-odbc-11.1.0.1-1
oracle-instantclient-sqlplus-11.1.0.1-1
the configure line works fine:
./configure \
--with-oci8=$ORACLE_HOME \
--with-mysql \
--with-apxs2=/usr/local/apache2/bin/apxs \
--enable-ftp \
--with-curl \
--enable-sockets \
--with-tidy \
--enable-sigchild
yet when attempting to run make a whole load of errors in the line of:
/source/php-5.2.4/ext/oci8/oci8.c: In function `php_oci_fetch_row':
/source/php-5.2.4/ext/oci8/oci8.c:1680: error: `z_statement' undeclared (first use in this function)
/source/php-5.2.4/ext/oci8/oci8.c:1680: error: invalid type argument of `unary *'
/source/php-5.2.4/ext/oci8/oci8.c:1681: error: invalid operands to binary *
/source/php-5.2.4/ext/oci8/oci8.c:1682: error: `column' undeclared (first use in this function)
/source/php-5.2.4/ext/oci8/oci8.c:1683: error: `ub4' undeclared (first use in this function)
/source/php-5.2.4/ext/oci8/oci8.c:1683: error: syntax error before "nrows"
/source/php-5.2.4/ext/oci8/oci8.c:1687: error: `expected_args' undeclared (first use in this function)
/source/php-5.2.4/ext/oci8/oci8.c:1690: error: `ht' undeclared (first use in this function)
/source/php-5.2.4/ext/oci8/oci8.c:1695: error: `mode' undeclared (first use in this function)
/source/php-5.2.4/ext/oci8/oci8.c:1727: error: syntax error before ')' token
/source/php-5.2.4/ext/oci8/oci8.c:1727: error: `return_value' undeclared (first use in this function)
/source/php-5.2.4/ext/oci8/oci8.c:1729: error: `nrows' undeclared (first use in this function)
/source/php-5.2.4/ext/oci8/oci8.c:1735: error: request for member `ncolumns' in something not a structure or union
/source/php-5.2.4/ext/oci8/oci8.c:1747: error: `element' undeclared (first use in this function)
/source/php-5.2.4/ext/oci8/oci8.c:1749: error: syntax error before ')' token
/source/php-5.2.4/ext/oci8/oci8.c:1776: error: invalid type argument of `->'
/source/php-5.2.4/ext/oci8/oci8.c:1776: error: `orig_ptr' undeclared (first use in this function)
/source/php-5.2.4/ext/oci8/oci8.c:1776: error: syntax error before ')' token
/source/php-5.2.4/ext/oci8/oci8.c:1776: error: invalid type argument of `unary *'
/source/php-5.2.4/ext/oci8/oci8.c:1776: warning: passing arg 1 of `_zval_copy_ctor' makes pointer from integer without a cast
/source/php-5.2.4/ext/oci8/oci8.c:1776: error: invalid type argument of `->'
/source/php-5.2.4/ext/oci8/oci8.c:1776: error: invalid type argument of `->'
/source/php-5.2.4/ext/oci8/oci8.c:1776: error: invalid type argument of `->'
/source/php-5.2.4/ext/oci8/oci8.c:1776: error: invalid type argument of `->'
/source/php-5.2.4/ext/oci8/oci8.c:1776: warning: passing arg 1 of `_zval_dtor' makes pointer from integer without a cast
/source/php-5.2.4/ext/oci8/oci8.c:1776: error: invalid type argument of `unary *'
/source/php-5.2.4/ext/oci8/oci8.c:1776: warning: passing arg 1 of `_zval_copy_ctor' makes pointer from integer without a cast
/source/php-5.2.4/ext/oci8/oci8.c:1776: error: invalid type argument of `->'
/source/php-5.2.4/ext/oci8/oci8.c:1776: error: invalid type argument of `->'
/source/php-5.2.4/ext/oci8/oci8.c:1778: error: request for member `ncolumns' in something not a structure or union
/source/php-5.2.4/ext/oci8/oci8.c: In function `php_oci_persistent_helper':
/source/php-5.2.4/ext/oci8/oci8.c:1788: error: `connection' undeclared (first use in this function)
/source/php-5.2.4/ext/oci8/oci8.c:1793: error: syntax error before ')' token
/source/php-5.2.4/ext/oci8/oci8.c:1796: error: request for member `in_call' in something not a structure or union
/source/php-5.2.4/ext/oci8/oci8.c:1822: error: request for member `persistent_timeout' in something not a structure or union
/source/php-5.2.4/ext/oci8/oci8.c:1823: error: request for member `persistent_timeout' in something not a structure or union
/source/php-5.2.4/ext/oci8/oci8.c:1826: error: request for member `ping_interval' in something not a structure or union
/source/php-5.2.4/ext/oci8/oci8.c:1827: error: request for member `ping_interval' in something not a structure or union
/source/php-5.2.4/ext/oci8/oci8.c:1835: error: request for member `persistent_timeout' in something not a structure or union
make: *** [ext/oci8/oci8.lo] Error 1
(there is more before that!)
Any clues on what might be the cause of this? i have also attempted getting the latest PHP oci8 package from http://pecl.php.net/package/oci8 but alas no luck.
Can anyone enlighten me on how to correct this? Thanks in advance!
Regards,
Shadi Almosri
More Debugging information incase it helps, this is the process i am taking to run the compile.
[root@proxy2 php-5.2.4]# make distclean
find . -name \*.gcno -o -name \*.gcda | xargs rm -f
find . -name \*.lo -o -name \*.o | xargs rm -f
find . -name \*.la -o -name \*.a | xargs rm -f
find . -name \*.so | xargs rm -f
find . -name .libs -a -type d|xargs rm -rf
rm -f libphp5.la sapi/cli/php libphp5.la modules/* libs/*
rm -f config.cache config.log config.status Makefile.objects Makefile.fragments libtool main/php_config.h stamp-h php5.spec sapi/apache/libphp5.module buildmk.stamp
grep -E define'.*include/php' /source/php-5.2.4/configure | /bin/sed 's/.*>//'|xargs rm -f
find . -name Makefile | xargs rm -f
[root@proxy2 php-5.2.4]# ./buildconf --force
Forcing buildconf
using default Zend directory
buildconf: checking installation...
buildconf: autoconf version 2.59 (ok)
buildconf: Your version of autoconf likely contains buggy cache code.
Running cvsclean for you.
To avoid this, install autoconf-2.13.
rebuilding configure
aclocal.m4:2141: PHP_PROG_LEX is expanded from...
[root@proxy2 php-5.2.4]# export ORACLE_HOME=/usr/lib/oracle/11.1.0.1/client
[root@proxy2 php-5.2.4]# export LD_LIBRARY_PATH=/usr/lib/oracle/11.1.0.1/client/lib
[root@proxy2 php-5.2.4]# ./configure \
--with-oci8=$ORACLE_HOME \
--with-mysql \
--with-apxs2=/usr/local/apache2/bin/apxs \
--enable-ftp \
--with-curl \
--enable-sockets \
--with-tidy \
--enable-sigchildconfigure completes with no errors with these outputs related to OCI:
checking for Oracle (OCI8) support... yes
checking PHP version... 5.2.4, ok
checking Oracle Install Directory... /usr/lib/oracle/11.1.0.1/client
checking if we're on a 64-bit platform... no
checking OCI8 libraries dir... lib
checking Oracle version... 11.1
checking for OCILobIsTemporary in -lclntsh... yes
checking for OCICollAssign in -lclntsh... yes
[root@proxy2 php-5.2.4]# make
Then the errors start from here:
/bin/sh /source/php-5.2.4/libtool silent preserve-dup-deps --mode=compile gcc -Iext/oci8/ -I/source/php-5.2.4/ext/oci8/ -DPHP_ATOM_INC -I/source/php-5.2.4/include -I/source/php-5.2.4/main -I/source/php-5.2.4 -I/usr/include/libxml2 -I/source/php-5.2.4/ext/date/lib -I/usr/include/mysql -I/source/php-5.2.4/TSRM -I/source/php-5.2.4/Zend -I/usr/include -g -O2 -prefer-non-pic -c /source/php-5.2.4/ext/oci8/oci8.c -o ext/oci8/oci8.lo
In file included from /source/php-5.2.4/ext/oci8/oci8.c:50:
/source/php-5.2.4/ext/oci8/php_oci8_int.h:56:17: oci.h: No such file or directory
In file included from /source/php-5.2.4/ext/oci8/oci8.c:50:
/source/php-5.2.4/ext/oci8/php_oci8_int.h:101: error: syntax error before "OCIEnv"
/source/php-5.2.4/ext/oci8/php_oci8_int.h:101: warning: no semicolon at end of struct or union
/source/php-5.2.4/ext/oci8/oci8.c:1826: error: request for member `ping_interval' in something not a structure or union
/source/php-5.2.4/ext/oci8/oci8.c:1827: error: request for member `ping_interval' in something not a structure or union
/source/php-5.2.4/ext/oci8/oci8.c:1835: error: request for member `persistent_timeout' in something not a structure or union
make: *** [ext/oci8/oci8.lo] Error 1
[root@proxy2 php-5.2.4]#
Similar Messages
-
PHP5.2.4 with oci8 Compiling issues
Hi I had installed apache .2.0.54 rpm and installed oracle-instantclient-basic and oracle-instantclient-devel and compliled php-5.2.4 with the follwoing options
sudo ./configure with-oci8=instantclient,/usr/lib/oracle/10.2.0.3/client/lib/ prefix=/opt/php with-apxs2=/usr/local/apache2/bin/apxs enable-sigchild --with-config-file-path=/etc/httpd/conf
Make gives a error
/usr/bin/ld: skipping incompatible /usr/lib/oracle/10.2.0.3/client/lib//libclntsh.so when searching for -lclntsh
/usr/bin/ld: cannot find -lclntsh
collect2: ld returned 1 exit status
make: *** [libphp5.la] Error 1Hi Cj
Thx As you told i followed the steps and Compiling issues is resolved and i had some other issue like oci8 extns was not visible in phpinfo.php and after Trial and error its started working.
The reason for oci8 not visible is i httpd-devel was not installed , after installing httpd-devel and recompiling with the following options oci8 was enabled.
./configure \
--with-oci8=instantclient,/opt/instantclient_10_2 \
prefix=/opt/php with-apxs2=/usr/sbin/apxs \
enable-sigchild with-config-file-path=/etc/httpd/conf
Thx for the Help :) :) :)
Christian Jones
Karthik -
BPEL Composite compilation issues in SOA Suite 11.1.2
I imported a SOA Composite BPEL project developed on SOA Suite 11.1.1 in SOA Suite 11.1.2. When compiling the project through ant using the "ant-sca-compile.xml" generated through JDev in 11.1.1 I am getting the following exception
java.lang.NoClassDefFoundError: oracle/fabric/common/FabricException
Caused by: java.lang.ClassNotFoundException: oracle.fabric.common.FabricException
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: oracle.soa.scac.ValidateComposite. Program will exit.
Exception in thread "main"
Have checked all my classpaths and jar's which are found to be in order. What can be the problem?I changed some of the paths in the build file but now I am having compilation issues. It says the classpath is not set correctly. But I have included all the jar's properly in the build.xml.
Any pointers to where I might be going wrong?
D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\build\ant-sca-compile.xml
detokeniser:
scac:
[scac] Validating composite : 'D:/CommonTechServices/INT_ARCH/Construction/src/soa/CommonServices/NotificationServiceBpel/composite.xml'
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:14: package com.collaxa.cube does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:15: package com.collaxa.cube.engine does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:16: package com.collaxa.cube.engine.core.map does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:21: package com.collaxa.cube.engine.core does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:100: package com.collaxa.cube.engine.core.ICubeProcess does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:107: package com.collaxa.cube.engine.core.ICubeProcess does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:148: package com.collaxa.cube.engine.core does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:148: package com.collaxa.cube.engine does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:148: package com.collaxa.cube does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:390: package com.collaxa.cube.engine does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:390: package com.collaxa.cube does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:401: package com.collaxa.cube.engine.core.map does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:401: package com.collaxa.cube.engine does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:401: package com.collaxa.cube does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:841: package com.collaxa.cube.engine.core does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:841: package com.collaxa.cube.util does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:841: package com.collaxa.cube.engine does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:841: package com.collaxa.cube.util does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:857: package com.collaxa.cube.engine.ext.bpel.v1.blocks does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:872: package com.collaxa.cube.engine.core does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:872: package com.collaxa.cube.engine.core does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:872: package com.collaxa.cube.engine does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:872: package com.collaxa.cube.engine.core does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:900: package com.collaxa.cube.engine.core does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:900: package com.collaxa.cube.engine does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:930: package com.collaxa.cube.engine.ext.bpel.v1.blocks does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:941: package com.collaxa.cube.engine.core does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:941: package com.collaxa.cube.engine does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:990: package com.collaxa.cube.engine.ext.bpel.v1.blocks does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1044: package com.collaxa.cube.engine.core does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1044: package com.collaxa.cube.engine does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1089: package com.collaxa.cube.engine.core does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1089: package com.collaxa.cube.engine does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1105: package com.collaxa.cube.engine.ext.bpel.v1.nodes does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1122: package com.collaxa.cube.engine.core does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1122: package com.collaxa.cube.engine does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1122: package com.collaxa.cube does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1300: package com.collaxa.cube.engine.ext.bpel.v1.blocks does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1348: package com.collaxa.cube.engine.core does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1348: package com.collaxa.cube.engine.core does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1348: package com.collaxa.cube.engine does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1348: package com.collaxa.cube.engine.core does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1404: package com.collaxa.cube.engine.core does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1404: package com.collaxa.cube.engine does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1449: package com.collaxa.cube.engine.core does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1449: package com.collaxa.cube.engine does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1465: package com.collaxa.cube.engine.ext.bpel.v1.nodes does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1509: package com.collaxa.cube.engine.types.bpel does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1526: package com.collaxa.cube.engine.types.bpel does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1553: package com.collaxa.cube.engine.ext.bpel.v1.blocks does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1607: package com.collaxa.cube.engine.core does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1607: package com.collaxa.cube.engine does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1652: package com.collaxa.cube.engine.core does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1652: package com.collaxa.cube.engine does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1668: package com.collaxa.cube.engine.ext.bpel.v1.nodes does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1685: package com.collaxa.cube.engine.core does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1685: package com.collaxa.cube.engine does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1685: package com.collaxa.cube does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1780: package com.collaxa.cube.engine.ext.bpel.v1.nodes does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1797: package com.collaxa.cube.engine.core does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1797: package com.collaxa.cube.engine does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1797: package com.collaxa.cube does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1964: package com.collaxa.cube.engine.ext.bpel.v1.nodes does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1981: package com.collaxa.cube.engine.core does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1981: package com.collaxa.cube.engine does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:1981: package com.collaxa.cube does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:2154: package com.collaxa.cube.engine.ext.bpel.v1.blocks does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:2208: package com.collaxa.cube.engine.core does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:2208: package com.collaxa.cube.engine does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:2253: package com.collaxa.cube.engine.core does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:2253: package com.collaxa.cube.engine does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:2269: package com.collaxa.cube.engine.ext.bpel.v1.nodes does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:2286: package com.collaxa.cube.engine.core does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:2286: package com.collaxa.cube.engine does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:2286: package com.collaxa.cube does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:2381: package com.collaxa.cube.engine.ext.bpel.v1.nodes does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:2398: package com.collaxa.cube.engine.core does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:2398: package com.collaxa.cube.engine does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:2398: package com.collaxa.cube does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:2565: package com.collaxa.cube.engine.ext.bpel.v1.nodes does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:2582: package com.collaxa.cube.engine.core does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:2582: package com.collaxa.cube.engine does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:2582: package com.collaxa.cube does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:2755: package com.collaxa.cube.engine.ext.bpel.v1.blocks does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:2803: package com.collaxa.cube.engine.core does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:2803: package com.collaxa.cube.engine.core does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:2803: package com.collaxa.cube.engine does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:2803: package com.collaxa.cube.engine.core does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:2859: package com.collaxa.cube.engine.core does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:2859: package com.collaxa.cube.engine does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:2904: package com.collaxa.cube.engine.core does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:2904: package com.collaxa.cube.engine does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:2920: package com.collaxa.cube.engine.ext.bpel.v1.nodes does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:2964: package com.collaxa.cube.engine.types.bpel does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:2981: package com.collaxa.cube.engine.types.bpel does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:3008: package com.collaxa.cube.engine.ext.bpel.v1.blocks does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:3062: package com.collaxa.cube.engine.core does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:3062: package com.collaxa.cube.engine.core does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:3062: package com.collaxa.cube.engine does not exist
[scac] D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\orabpe
l\notificationservicebpel\BPEL_BIN.java:3062: package com.collaxa.cube.engine.core does not exist
[scac] Note: D:\CommonTechServices\INT_ARCH\Construction\src\soa\CommonServices\NotificationServiceBpel\SCA-INF\bpel\NotificationServiceBpel\src\
orabpel\notificationservicebpel\BPEL_BIN.java uses unchecked or unsafe operations.
[scac] Note: Recompile with -Xlint:unchecked for details.
[scac] FATAL_ERROR: location {ns:composite/ns:component[@name='NotificationServiceBpel']}(30,45): Failed to compile bpel generated classes.
[scac] failure to compile the generated BPEL classes for BPEL process "NotificationServiceBpel" of composite "default/NotificationServiceBpel!1.0
[scac] The class path setting is incorrect.
[scac] Ensure that the class path is set correctly. If this happens on the server side, verify that the custom classes or jars which this BPEL pr
ocess is depending on are deployed correctly. Also verify that the run time is using the same release/version.
[scac]
BUILD FAILED -
Flash Builder 4.7 frequent compiler issues/restarts
Basically Flash Builder 4.7 on Mac OSX 10.7.5 is unusable. Very frustrating. Constant compiler issues that require frequent cleaning, closing of projects, restarts of FB, and even re-installs. I've seen none of these issues on FB 4.6 with the same projects/code.
The most common visible compiler errors are these two that randomly appear:
1) An internal build error has occurred
2) classes must not be nested
I tried increasing memory as some have suggested, but this has no effect.
It takes me 100 times longer to code now becuase every tiny code change cuases these errors. Crazy!
Before I revert back to FB 4.6, any suggestions?
Thanks,
DonHi!
Close any unneeded projects in workspace.
You can also split your large project to few libraries compiled into SWC. After compiling libraries, if not need to change often, close their projects. When such projects are closed main project compiling with just use of SWC libraries usually takes much less resources. -
Com.sun.security.auth.module.NTSystem compilation issues in Unix
Hi ,
I m using com.sun.security.auth.module.NTSystem in one my java application to get the current domain. The application and app server are running on windows OS.
Now i want to switch my OS to Unix, where i m getting compilation issues with com.sun.security.auth.module.NTSystem ,
1)Do i need to change the module from NTSystem to UnixSystem?
2) I m developing the java application in Eclipse 3.2 with java 1.4 , when i m trying to import the below statment com.sun.security.auth.module.UnixSystem i couldn't? Could you please let me how i can import the UnixSystem or NTSystem will work?
Appreciate your help!!!!
Regards,
Ravi.Unix, where i m getting compilation issues with com.sun.security.auth.module.NTSystemOf course.
Do i need to change the module from NTSystem to UnixSystem?Of course. -
SAP RFC SDK 7.10 Compilation Issues
Hello ,
We have a Pro*C program that is using the RFC SDK 7.10
When we are compiling our program with Pro*C Compiler in HP UX 11iv2 os we are getting the following errors:
SAP_U16_PROTOTYPE_STDC(mkstemp)..1 PCC-S-02201, Encountered the symbol "mkstemp" when expecting one of the following: Error at line 1895, column 1 in file /home/psoni/rfcsdk-710/orgseclib/sapuc.h SAP_U16_PROTOTYPE_UO(dirname) 1
PCC-S-02201, Encountered the symbol "SAP_U16_PROTOTYPE_UO_HLP" when expecting on
e of the following: ; , = ( [ * ? | & < > + - / % . ^ *= /= %= += -= <<= >>= &&=
||= ^= | & == != <= >= << >> ++ -- ->
The symbol ";" was substituted for "SAP_U16_PROTOTYPE_UO_HLP" to continue.
Syntax error at line 1901, column 1, file /home/psoni/rfcsdk-710/orgseclib/sapuc.h:
Error at line 1901, column 1 in file /home/psoni/rfcsdk-710/orgseclib/sapuc.h
SAP_U16_PROTOTYPE(ecvt) 1
PCC-S-02201, Encountered the symbol "extern" when expecting one of the following
: ; , = ( [ * ? | & < > + - / % . ^ *= /= %= += -= <<= >>= &&=
||= ^= | & == != <= >= << >> ++ -- ->
I had checked the files sapuc.h and sapucx.h are correctly included in my program.
Also I checked for the errors : that the reference of some constants like
SAP_U16_PROTOTYPE is present is sapuc.h - However I am not able to
identify the cause of compilation issues.
Please can anyone guide me - or give any hints as to how this compilation issues can be resolved.
On sap rfc sdk version 6.20 with HPUnix 11iV1 we did not face such problems. Post that release we have tried all libraries including 6.40 and all of them are giving the above errors.
Thanks for the help.
Regards,
ShivaniThis compiler error looks really strange.
Without your sources (of the affected file) and the full command line it's impossible to suggest something.
Markus -
Native extension - compiler issue
Hi,
First, I compile an iOS app with a native extension developped by ADOBE : http://www.adobe.com/devnet/air/native-extensions-for-air/extensions/vibration.html#articl econtentAdobe_numberedheader_3
It's work well
Then, I made myself the iOS library on xcode. It's OK as well
Then, I made the ANE file following the tutorial http://custardbelly.com/blog/2011/09/21/air-native-extension-example-ibattery-for-ios/. It's seem OK
I create my air app with Flash Builder. I load ANE, SWC...everything seem ok
When I compile my Iphone Application with Flex, there is this error :
An erreor appears during the application packaging (my translation):
ld warning: in C:\\Users\\Tony\\AppData\\Local\\Temp\\c6468656-be35-4f05-8d51-0dd54063cefd/libcom.adobe. LEDTorch.a, file is not of required architecture
Undefined symbols:
"_ExtFinalizer", referenced from:
_g_com_adobe_air_fre_fmap in extensionglue.o
"_ExtInitializer", referenced from:
_g_com_adobe_air_fre_fmap in extensionglue.o
ld: symbol(s) not found
Compilation failed while executing : ld64
Someone could help me?
I'm working on this bug for 2 days
Thanks in advance !
EmmanuelHi,
Apparently, the issue is the following: (find in the forum of
http://www.liquid-photo.com/2011/10/28/native-extension-for-adobe-air-and-ios-101/#comment -322
Apparently X-Code was trying to build NativeAlert.m as Objective-C++ source
instead of Objective-C source. Silly mistake really. It took starting the
project over again and trauling through the project settings to figure out
what was wrong. Oh well, all sorted now.
But i didn't succeed in setting the project with the corrects parameter.
Could you help me?
Thanks in advance
Regards
E.Fuchs
2012/2/10 Saumitra Bhave <[email protected]>
Re: Native extension - compiler issue created by Saumitra Bhave<http://forums.adobe.com/people/SaumiB>in
Mobile Development - View the full discussion<http://forums.adobe.com/message/4198519#4198519> -
Pro*C - PERCENT_RANK() compilation issue
Hello,
I have a pro*C compilation issue, while using PERCENT_RANK() in-built function. I am using Oracle 10.2.0.4.
Here are the details :
The Pro*C code :
================================================== ========
int srccct2_insert()
EXEC SQL
select * from (
select
trad_code,
comp_code,
file_code,
insp_yymm,
poly_numb,
entr_numb,
data_code,
caus_date,
insd_code,
rule_ordr,
sex_code,
entr_age,
resd_numb,
entr_name,
hire_date,
entr_date,
work_year,
hire_grad,
datt_entr,
ijry_entr,
wkdt_entr,
base_saly,
expt_amnt,
rsrv_rato,
rsrv_amnt,
PERCENT_RANK() OVER (ORDER BY base_saly) pr FROM SRCCCT2 where trad_code = 'N' AND
comp_code = '01' AND
insp_yymm = '200403' AND
data_code = 'B' AND
hire_grad = '2' AND
base_saly > 0)
where pr > 0.05 and pr < 0.95 and base_saly > 641840;
return SUCCESS;
================================================== ======
I am compiling it like this :
/oracle/product/10.2.0/bin/proc iname=srascs01.pc ireclen=320 oreclen=320 sqlcheck=full userid=retr/rteru maxopencursors=32 dbms=v8 char_map=varchar2 release_cursor=yes include=/oracle/product/10.2.0/precomp/public include=/ihome/hp/../common/include include=/ihome/retr/include include=/usr/include include=/ihome/hp/portlib DEFINE=HPUX
I have put the same sql statements in the sql promt and it works fine. But in Pro*C when i compile it using above options, here is the error :
================================================== ======
Pro*C/C++: Release 10.2.0.4.0 - Production on Thu Feb 25 00:57:42 2010
Copyright (c) 1982, 2007, Oracle. All rights reserved.
System default option values taken from: /oracle/product/10.2.0/precomp/admin/pcscfg.cfg
Syntax error at line 192, column 28, file srascs01.pc:
Error at line 192, column 28 in file srascs01.pc
PERCENT_RANK() OVER (ORDER BY base_saly) pr
...........................1
PCC-S-02201, Encountered the symbol "(" when expecting one of the following:
, into, from,
Error at line 0, column 0 in file srascs01.pc PCC-F-02102, Fatal error while doing C preprocessing
*** Error exit code 1
Stop.
*** Error exit code 1
Stop.
================================================== =======
After searching in this website, i saw a related thread. But that solution did not work for me. I have posted a reply on that aswell, for Mark_Williams. Here is the related link:
Re: help for analysis function in PRO*C
Please help me on this.
Thanks,
KumarHi Sumit,
Thanks much for a reply.
I am very novice for Pro*C. Please bear with me, if i sound odd anywhere.
I did check the program again. When i leave EXEC SQL and put the whole SELECT statement in double quotes and then postfix back slashes at each line in the SELECT statement, compilation succeeds. But I am just wondering, if this works fine, even if we don't use, "EXEC SQL" ?
When we use "EXEC SQL" and double quotes also, there seems to be two double quotes before SELECT and so compilation fails, with the below error msg. I think "EXEC SQL" is also appending a double quote.(??)
I did not really understand when you said "declaring the sql statement and calling EXEC SQL PREPARE". Are you talking about declaring the sql statement in sqlplus ?
If the above method of removing "EXEC SQL" and using double quotes and slashes is correct, then i think we anyway need not do anything else as the compilation went through.
Thanks again,
-Kumar -
<div class=Section1><br /><br /><p class=MsoNormal>I received this error calling the flex2.tools.Compiler’s<br />main[] method. The MXML input compiles successfully in the Flex 2<br />builder. I wanted to check to see if anyone had experienced this before<br />digging deeper into source code.<o:p></o:p></p><br /><br /><p class=MsoNormal><o:p> </o:p></p><br /><br /><p class=MsoNormal>--Scott<o:p></o:p></p><br /><br /><p class=MsoNormal><o:p> </o:p></p><br /><br /><p class=MsoNormal><o:p> </o:p></p><br /><br /><p class=MsoNormal><o:p> </o:p></p><br /><br /><p class=MsoNormal>------------------------------------------------------------------------- ----------------------<o:p></o:p></p><br /><br /><p class=MsoNormal><o:p> </o:p></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>Error:<br />org.apache.batik.css.parser.Parser.getLineNumber()I</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New"'><o:p> </o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>java.lang.NoSuchMethodError:<br />org.apache.batik.css.parser.Parser.getLineNumber()I</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'> at<br />flash.css.StyleParser.getLineNumber(</span><u><span style='font-size:10.0pt;<br />font-family:"Courier New";color:navy'>StyleParser.java:208</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'> at<br />flash.css.StyleDocumentHandler.startFontFace(</span><u><span style='font-size:<br />10.0pt;font-family:"Courier New";color:navy'>StyleDocumentHandler.java:100</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'> at<br />org.apache.batik.css.parser.Parser.parseFontFaceRule(</span><u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:navy'>Parser.java:484</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'> at<br />org.apache.batik.css.parser.Parser.parseStyleSheet(</span><u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:navy'>Parser.java:224</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'> at flash.css.StyleParser.init(</span><u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:navy'>StyleParser.java:172</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'> at<br />flash.css.StyleParser.<init>(</span><u><span style='font-size:10.0pt;<br />font-family:"Courier New";color:navy'>StyleParser.java:106</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'> at<br />flash.css.StyleSheet.parse(</span><u><span style='font-size:10.0pt;font-family:<br />"Courier New";color:navy'>StyleSheet.java:54</span></u><span style='font-size:<br />10.0pt;font-family:"Courier New";color:red'>)</span><span style='font-size:<br />10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'> at<br />flex2.compiler.mxml.analyzer.SyntaxAnalyzer.parseStyle(</span><u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:navy'>SyntaxAnalyzer.java:551</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'> at<br />flex2.compiler.mxml.analyzer.SyntaxAnalyzer.analyze(</span><u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:navy'>SyntaxAnalyzer.java:122</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'> at<br />flex2.compiler.mxml.dom.StyleNode.analyze(</span><u><span style='font-size:<br />10.0pt;font-family:"Courier New";color:navy'>StyleNode.java:50</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'> at<br />flex2.compiler.mxml.dom.AnalyzerAdapter.traverse(</span><u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:navy'>AnalyzerAdapter.java:172</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'> at<br />flex2.compiler.mxml.dom.AnalyzerAdapter.analyze(</span><u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:navy'>AnalyzerAdapter.java:164</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'> at<br />flex2.compiler.mxml.analyzer.SyntaxAnalyzer.analyze(</span><u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:navy'>SyntaxAnalyzer.java:55</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'> at<br />flex2.compiler.mxml.dom.Node.analyze(</span><u><span style='font-size:10.0pt;<br />font-family:"Courier New";color:navy'>Node.java:47</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'> at<br />flex2.compiler.mxml.InterfaceCompiler.parse1(</span><u><span style='font-size:<br />10.0pt;font-family:"Courier New";color:navy'>InterfaceCompiler.java:222</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'> at<br />flex2.compiler.mxml.Compiler.parse1(</span><u><span style='font-size:10.0pt;<br />font-family:"Courier New";color:navy'>Compiler.java:95</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'> at<br />flex2.compiler.API.parse1(</span><u><span style='font-size:10.0pt;font-family:<br />"Courier New";color:navy'>API.java:2306</span></u><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>)</span><span style='font-size:10.0pt;<br />font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'> at<br />flex2.compiler.API.parse1(</span><u><span style='font-size:10.0pt;font-family:<br />"Courier New";color:navy'>API.java:2259</span></u><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>)</span><span style='font-size:10.0pt;<br />font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'> at<br />flex2.compiler.API.batch2(</span><u><span style='font-size:10.0pt;font-family:<br />"Courier New";color:navy'>API.java:367</span></u><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>)</span><span style='font-size:10.0pt;<br />font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'> at<br />flex2.compiler.API.batch(</span><u><span style='font-size:10.0pt;font-family:<br />"Courier New";color:navy'>API.java:1108</span></u><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>)</span><span style='font-size:10.0pt;<br />font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'> at<br />flex2.compiler.API.compile(</span><u><span style='font-size:10.0pt;font-family:<br />"Courier New";color:navy'>API.java:1281</span></u><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>)</span><span style='font-size:10.0pt;<br />font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'> at<br />flex2.compiler.API.compile(</span><u><span style='font-size:10.0pt;font-family:<br />"Courier New";color:navy'>API.java:1201</span></u><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'>)</span><span style='font-size:10.0pt;<br />font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'> at<br />flex2.tools.Compiler.mxmlc(</span><u><span style='font-size:10.0pt;font-family:<br />"Courier New";color:navy'>Compiler.java:240</span></u><span style='font-size:<br />10.0pt;font-family:"Courier New";color:red'>)</span><span style='font-size:<br />10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'> at<br />flex2.tools.Compiler.main(</span><u><span style='font-size:10.0pt;font-family:<br />"Courier New";color:navy'>Compiler.java:53</span></u><span style='font-size:<br />10.0pt;font-family:"Courier New";color:red'>)</span><span style='font-size:<br />10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;<br />font-family:"Courier New";color:red'> at<br />net.sf.jasperreports.export.flex.JRSwfExporter.exportReportToStream(</span><u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:navy'>JRSwfExporter.java:268</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><span<br />style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><br /><br /><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";<br />color:red'> at net.sf.jasperreports.export.flex.JRSwfExporter.exportReport(</span><u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:navy'>JRSwfExporter.java:177</span></u><span<br />style='font-size:10.0pt;font-family:"Courier New";color:red'>)</span><o:p></o:p></p><br /><br /></div>
Would you provide some details on how you’re calling this, which branch (e.g. Compiler is now known as Mxmlc on the trunk)? You need to have all libs from trunk/lib on the classpath.
- Jono
From: chauncy <[email protected]>
Reply-To: <[email protected]>
Date: Thu, 17 Apr 2008 10:31:31 -0700
To: <[email protected]>
Subject: Batik-related compiler issue
A new discussion was started by chauncy in
Developers --
Batik-related compiler issue
I received this error calling the flex2.tools.Compiler’s main[] method. The MXML input compiles successfully in the Flex 2 builder. I wanted to check to see if anyone had experienced this before digging deeper into source code.
--Scott
Error: org.apache.batik.css.parser.Parser.getLineNumber()I
java.lang.NoSuchMethodError: org.apache.batik.css.parser.Parser.getLineNumber()I
at flash.css.StyleParser.getLineNumber(
StyleParser.java:208
at flash.css.StyleDocumentHandler.startFontFace(
StyleDocumentHandler.java:100
at org.apache.batik.css.parser.Parser.parseFontFaceRule(
Parser.java:484
at org.apache.batik.css.parser.Parser.parseStyleSheet(
Parser.java:224
at flash.css.StyleParser.init(
StyleParser.java:172
at flash.css.StyleParser.<init>(
StyleParser.java:106
at flash.css.StyleSheet.parse(
StyleSheet.java:54
at flex2.compiler.mxml.analyzer.SyntaxAnalyzer.parseStyle(
SyntaxAnalyzer.java:551
at flex2.compiler.mxml.analyzer.SyntaxAnalyzer.analyze(
SyntaxAnalyzer.java:122
at flex2.compiler.mxml.dom.StyleNode.analyze(
StyleNode.java:50
at flex2.compiler.mxml.dom.AnalyzerAdapter.traverse(
AnalyzerAdapter.java:172
at flex2.compiler.mxml.dom.AnalyzerAdapter.analyze(
AnalyzerAdapter.java:164
at flex2.compiler.mxml.analyzer.SyntaxAnalyzer.analyze(
SyntaxAnalyzer.java:55
at flex2.compiler.mxml.dom.Node.analyze(
Node.java:47
at flex2.compiler.mxml.InterfaceCompiler.parse1(
InterfaceCompiler.java:222
at flex2.compiler.mxml.Compiler.parse1(
Compiler.java:95
at flex2.compiler.API.parse1(
API.java:2306
at flex2.compiler.API.parse1(
API.java:2259
at flex2.compiler.API.batch2(
API.java:367
at flex2.compiler.API.batch(
API.java:1108
at flex2.compiler.API.compile(
API.java:1281
at flex2.compiler.API.compile(
API.java:1201
at flex2.tools.Compiler.mxmlc(
Compiler.java:240
at flex2.tools.Compiler.main(
Compiler.java:53
at net.sf.jasperreports.export.flex.JRSwfExporter.exportReportToStream(
JRSwfExporter.java:268
at net.sf.jasperreports.export.flex.JRSwfExporter.exportReport(
JRSwfExporter.java:177
View/reply at Batik-related compiler issue
<http://www.adobeforums.com/webx?13@@.59b50561>
Replies by email are OK.
Use the unsubscribe
<http://www.adobeforums.com/webx?280@@.59b50561!folder=.3c060fa3> form to cancel your email subscription. -
"Occasionally" successful compilation issue on sun4v machine.
Hi,
I have created a thread on JSP section of the forum for this.
Intermittently successful JSP compilation issue
But I am putting the link here too because the only difference between the success and failed case is the platform we are using. We are using Solaris SPARC machines.
The compilation is a success on sun4u machine.
But on sun4v is mostly a failure (sometimes it succeeds though strangely).
I will be very grateful if you can go through the thread I have shared above and share some pointers on this.
RegardsPost Author: usaitconsultant
CA Forum: JAVA
Hi Ted,
Thanks for the reply.The file is not available in the server. Though, I checked CMS and I found an instance in history tab and the status is failed with error below.
Error Message:
A variable prevented the data provider Query 1 with BANRRD30 from being refreshed. (DMA0008).When I checked my codes, I found out that the object Im using is for web intelligence data provider. However, I cannot find any documentation and example for passing parameter values in desktop intelligence data provider. Any idea on this? You think this is not suported by Report Engine SDK?Thanks. -
Revision: 14245
Revision: 14245
Author: [email protected]
Date: 2010-02-18 08:53:00 -0800 (Thu, 18 Feb 2010)
Log Message:
Fixed inactive incremental compilation issue where library changes
were not causing application recompilation.
QE notes: We should add a JUnit OEM API test for this scenario.
Doc notes:
Bugs: SDK-25513
Reviewer: Pete F.
Tests run: checkintests
Is noteworthy for integration: yes, affects active incremental
compilation from FB.
Code-level description of changes:
Modified the loadCompilationUnits() used by
flex2.tools.oem.Application to pass the "sources" and "units" args
down, so that the PersistenceStore can populate them. This is
necessary to get OEMUtil.isRecompilationNeeded() called in
Application.recompile().
Ticket Links:
http://bugs.adobe.com/jira/browse/SDK-25513
Modified Paths:
flex/sdk/branches/4.x/modules/compiler/src/java/flex2/compiler/CompilerAPI.javaDear Pallavi,
Very useful post!
I am looking for similar accelerators for
Software Inventory Accelerator
Hardware Inventory Accelerator
Interfaces Inventory
Customization Assessment Accelerator
Sizing Tool
Which helps us to come up with the relevant Bill of Matetials for every area mentioned above, and the ones which I dont know...
Request help on such accelerators... Any clues?
Any reply, help is highly appreciated.
Regards
Manish Madhav -
When I compile my project I get this error message
Error: Exception thrown in Javac: Unknown cause
Do you have any idea on what to look for since the error message does not help?
JDev 11.1.1.6.0There was no stacktrace. So finally I recreated the project under eclipse and find out the compilation issue. The issue was merging SVN code delimiter like <<< .mine that causes the issue.
-
Strange PHP compile issue -- old MySQL client version
I've successfully compiled PHP 5.2.8 from source on two Xserve G5s running 10.4.11. It seems to run all the web apps fine. But when I look at phpinfo(), it reports that the MySQL Client API version is 4.1.22. Previously, when using Marc Liyanage's package version (5.2.4), the MySQL Client API was something like 5.0.45 (at least reasonably current with the MySQL version I had installed).
So I have two main questions:
1. What determines the PHP's MySQL Client API version? Is it some code in the PHP source that gets compiled? (In which case, why is the latest PHP source using an old MySQL Client.)
2. How can I make the PHP I compiled use the latest MySQL Client API version? (Since I've seen warnings that this could cause problems. Incidentally, I'm using MySQL 5.0.67.)
If it helps, here are the compile options I've used, per instructions online ( http://downloads.topicdesk.com/docs/UpdatingPHP_on_OS_XServer.pdf ):
./configure --prefix=/usr/local/php5 --mandir=/usr/share/man --infodir=/usr/share/info --with-apxs --with-ldap=/usr --with-kerberos=/usr --enable-cli --with-zlib-dir=/usr --with-libxml-dir=/usr --enable-exif --enable-ftp --enable-mbstring --enable-sockets --enable-fastcgi --with-iodbc=/usr --with-curl=/usr --with-config-file-path=/private/etc --with-mysql=/usr --with-mysql-sock=/var/mysql/mysql.sock
I can post the config.log as well if that's helpful.
...ReneI'm posting this information here as its the top hit when searching apple.com for mac php recompile
There is a MUCH easier/safer way to install a missing php module then doing a full recompile. Please see and read the comments:
http://www.pagebakers.nl/2008/12/17/installing-php-soap-extension-on-leopard-10- 5-5/#comment-4931 -
OCI8 compile errors on SLES 10
I'm stuck. New to Linux, so the error messages are greek. I've googled for days. Can anyone decipher the issue here? Thanks in advance for any help!!
Used RPM to install instant client 10.2.0.4 (user didn't want v11).
PHP 5.2.5 installed.
Used yast to install php5-dev pacakge
Receive the following output when trying to install oci8 using pecl (sorry it's so long, but I didn't know which part was important - and I did delete a chunk out of the middle that seemed repetitive, since there is a character limit in this forum...):
+<server>:~ # pecl install oci8+
downloading oci8-1.3.5.tar ...
Starting to download oci8-1.3.5.tar (Unknown size)
+.............................................done: 1,071,616 bytes+
+10 source files, building+
running: phpize
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
+1. Please provide the path to the ORACLE_HOME directory. Use+
+'instantclient,/path/to/instant/client/lib' if you're compiling with Oracle Instant+
Client : autodetect
+1-1, 'all', 'abort', or Enter to continue:+
building in /var/tmp/pear-build-<username>/oci8-1.3.5
+running: /tmp/pear/cache/oci8-1.3.5/configure --with-oci8+
checking for egrep... grep -E
checking for a sed that does not truncate output... /usr/bin/sed
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
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 ANSI C... none needed
checking whether gcc and cc understand -c and -o together... yes
checking for system library directory... lib
checking if compiler supports -R... no
checking if compiler supports -Wl,-rpath,... yes
checking build system type... i686-suse-linux
checking host system type... i686-suse-linux
checking target system type... i686-suse-linux
checking for PHP prefix... /usr
checking for PHP includes... -I/usr/include/php5 -I/usr/include/php5/main
-I/usr/include/php5/TSRM -I/usr/include/php5/Zend -I/usr/include/php5/ext
-I/usr/include/php5/ext/date/lib
checking for PHP extension directory... /usr/lib/php5/extensions
checking for PHP installed headers prefix... /usr/include/php5
checking for re2c... no
configure: WARNING: You will need re2c 0.12.0 or later if you want to regenerate
PHP parsers.
checking for gawk... gawk
checking for Oracle (OCI8) support... yes, shared
checking PHP version... 5.2.5, ok
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 long int... yes
checking size of long int... 4
checking checking if we're on a 64-bit platform... no
checking Oracle ORACLE_HOME install directory... /usr/lib/oracle/10.2.0.4/client
checking ORACLE_HOME library validity... lib
checking Oracle version... 10.1
checking for ld used by gcc... /usr/i586-suse-linux/bin/ld
checking if the linker (/usr/i586-suse-linux/bin/ld) is GNU ld... yes
checking for /usr/i586-suse-linux/bin/ld option to reload object files... -r
checking for BSD-compatible nm... /usr/bin/nm -B
checking whether ln -s works... yes
checking how to recognise dependent libraries... pass_all
checking dlfcn.h usability... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking for g77... no
checking for f77... no
checking for xlf... no
checking for frt... no
checking for pgf77... no
checking for fort77... no
checking for fl32... no
checking for af77... no
checking for f90... no
checking for xlf90... no
checking for pgf90... no
checking for epcf90... no
checking for f95... no
checking for fort... no
checking for xlf95... no
checking for ifc... no
checking for efc... no
checking for pgf95... no
checking for lf95... no
checking for gfortran... gfortran
checking whether we are using the GNU Fortran 77 compiler... yes
checking whether gfortran accepts -g... yes
checking the maximum length of command line arguments... 32768
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for objdir... .libs
checking for ar... ar
checking for ranlib... ranlib
checking for strip... strip
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC
checking if gcc PIC flag -fPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking whether the gcc linker (/usr/i586-suse-linux/bin/ld) supports shared
libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... cat: /etc/ld.so.conf.d/*.conf: No such
file or directory
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
configure: creating libtool
appending configuration tag "CXX" to libtool
appending configuration tag "F77" to libtool
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for gfortran option to produce PIC... -fPIC
checking if gfortran PIC flag -fPIC works... yes
checking if gfortran static flag -static works... yes
checking if gfortran supports -c -o file.o... yes
checking whether the gfortran linker (/usr/i586-suse-linux/bin/ld) supports shared
libraries... yes
checking dynamic linker characteristics... cat: /etc/ld.so.conf.d/*.conf: No such
file or directory
GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
configure: creating ./config.status
config.status: creating config.h
running: make
+/bin/sh /var/tmp/pear-build-<username>/oci8-1.3.5/libtool --mode=compile gcc -I.+
-I/tmp/pear/cache/oci8-1.3.5 -DPHP_ATOM_INC
-I/var/tmp/pear-build-<username>/oci8-1.3.5/include
-I/var/tmp/pear-build-<username>/oci8-1.3.5/main -I/tmp/pear/cache/oci8-1.3.5
-I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM
-I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib
-DHAVE_CONFIG_H -g -O2 -c /tmp/pear/cache/oci8-1.3.5/oci8.c -o oci8.lo
mkdir .libs
gcc -I. -I/tmp/pear/cache/oci8-1.3.5 -DPHP_ATOM_INC
-I/var/tmp/pear-build-<username>/oci8-1.3.5/include
-I/var/tmp/pear-build-<username>/oci8-1.3.5/main -I/tmp/pear/cache/oci8-1.3.5
-I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM
-I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib
-DHAVE_CONFIG_H -g -O2 -c /tmp/pear/cache/oci8-1.3.5/oci8.c -fPIC -DPIC -o
+.libs/oci8.o+
In file included from /tmp/pear/cache/oci8-1.3.5/oci8.c:51:
+/tmp/pear/cache/oci8-1.3.5/php_oci8_int.h:56:17: error: oci.h: No such file or+
directory
In file included from /tmp/pear/cache/oci8-1.3.5/oci8.c:51:
specifier-qualifier-list before 'text'
+/tmp/pear/cache/oci8-1.3.5/php_oci8_int.h:183: error: expected+
function)
+/tmp/pear/cache/oci8-1.3.5/oci8.c:992: error: (Each undeclared identifier is+
reported only once
+/tmp/pear/cache/oci8-1.3.5/oci8.c:992: error: for each function it appears in.)+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:992: error: expected ';' before 'errstatus'+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:993: error: 'sb4' undeclared (first use in this+
named 'env'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:1042: error: called object+
+'<erroneous-expression>' is not a function+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:1042: error: 'OCI_HTYPE_ENV' undeclared (first+
use in this function)
+/tmp/pear/cache/oci8-1.3.5/oci8.c:1044: error: 'zend_oci_globals' has no member+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2392: error: 'php_oci_out_column' has no+
member named 'retlen'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2392: warning: assignment makes integer from+
pointer without a cast
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2401: error: 'php_oci_out_column' has no+
member named 'data'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2401: warning: initialization from incompatible+
pointer type
+/tmp/pear/cache/oci8-1.3.5/oci8.c: In function 'php_oci_fetch_row':+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2416: error: 'ub4' undeclared (first use in this+
function)
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2416: error: expected ';' before 'nrows'+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2462: error: 'nrows' undeclared (first use in this+
function)
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2462: error: too many arguments to function+
+'php_oci_statement_fetch'+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2468: error: 'php_oci_statement' has no+
member named 'ncolumns'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2468: warning: comparison between pointer and+
integer
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2475: error: 'php_oci_out_column' has no+
member named 'idle_expiry'
named 'debug_mode'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2568: error: 'zend_oci_globals' has no member+
named 'in_call'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2568: error: 'zend_oci_globals' has no member+
named 'errcode'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2568: error: 'php_oci_spool' has no member+
named 'env'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2568: error: 'dvoid' undeclared (first use in this+
function)
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2568: error: expected expression before ')'+
token
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2568: error: invalid operands to binary *+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2568: error: 'zend_oci_globals' has no member+
named 'in_call'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2570: error: 'zend_oci_globals' has no member+
named 'errcode'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2570: error: 'OCI_SUCCESS' undeclared (first+
use in this function)
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2571: error: 'zend_oci_globals' has no member+
named 'err'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2571: error: 'zend_oci_globals' has no member+
named 'errcode'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2580: error: 'zend_oci_globals' has no member+
named 'debug_mode'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2580: error: 'zend_oci_globals' has no member+
named 'in_call'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2580: error: 'zend_oci_globals' has no member+
named 'errcode'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2580: error: expected expression before ')'+
token
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2580: error: invalid operands to binary *+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2580: error: 'zend_oci_globals' has no member+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2592: error: 'OCI_SPC_HOMOGENEOUS'+
undeclared (first use in this function)
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2598: error: 'zend_oci_globals' has no member+
named 'debug_mode'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2598: error: 'zend_oci_globals' has no member+
named 'in_call'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2598: error: 'zend_oci_globals' has no member+
named 'errcode'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2598: error: 'OraText' undeclared (first use in+
this function)
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2598: error: expected expression before ')'+
token
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2598: error: invalid operands to binary *+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2598: error: 'zend_oci_globals' has no member+
named 'in_call'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2600: error: 'zend_oci_globals' has no member+
named 'persistent_timeout'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2608: error: expected ';' before 'timeout'+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2610: error: 'zend_oci_globals' has no member+
named 'debug_mode'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2610: error: 'zend_oci_globals' has no member+
named 'in_call'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2610: error: 'zend_oci_globals' has no member+
named 'errcode'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2610: error: expected expression before ')'+
token
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2610: error: invalid operands to binary *+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2610: error: 'zend_oci_globals' has no member+
named 'in_call'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2612: error: 'zend_oci_globals' has no member+
named 'errcode'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2613: error: 'zend_oci_globals' has no member+
named 'err'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2613: error: 'zend_oci_globals' has no member+
named 'errcode'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2625: error: 'zend_oci_globals' has no member+
named 'debug_mode'
+/tmp/pear/cache/oci8-1.3.5/oci8.c: In function 'php_oci_get_spool':+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2680: error: 'php_oci_spool' has no member+
named 'spool_hash_key'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2680: error: 'php_oci_spool' has no member+
named 'spool_hash_key'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2680: warning: passing argument 1 of 'strlen'+
from incompatible pointer type
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2680: warning: passing argument 2 of+
+'_zend_hash_add_or_update' from incompatible pointer type+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2682: error: 'php_oci_spool' has no member+
named 'spool_hash_key'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2682: warning: passing argument 1 of 'strlen'+
from incompatible pointer type
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2683: error: 'php_oci_spool' has no member+
named 'spool_hash_key'
+/tmp/pear/cache/oci8-1.3.5/oci8.c: At top level:+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2703: error: expected '=', ',', ';', 'asm' or+
+'__attribute__' before '*' token+
+/tmp/pear/cache/oci8-1.3.5/oci8.c: In function 'php_oci_old_create_session':+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2728: error: 'ub4' undeclared (first use in this+
function)
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2728: error: expected ';' before+
+'statement_cache_size'+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2730: error: 'zend_oci_globals' has no member+
named 'debug_mode'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2735: error: 'php_oci_connection' has no+
member named 'env'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2735: error: 'php_oci_connection' has no+
member named 'charset'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2740: error: 'zend_oci_globals' has no member+
named 'debug_mode'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2740: error: 'zend_oci_globals' has no member+
named 'in_call'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2740: error: 'zend_oci_globals' has no member+
named 'errcode'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2740: error: 'php_oci_connection' has no+
member named 'env'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2740: error: 'dvoid' undeclared (first use in this+
function)
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2740: error: expected expression before ')'+
token
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2740: error: invalid operands to binary *+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2740: error: 'zend_oci_globals' has no member+
named 'in_call'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2742: error: 'zend_oci_globals' has no member+
named 'errcode'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2742: error: 'OCI_SUCCESS' undeclared (first+
named 'in_call'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2748: error: 'zend_oci_globals' has no member+
named 'errcode'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2748: error: 'php_oci_connection' has no+
named 'errcode'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2792: error: expected expression before ')'+
token
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2792: error: invalid operands to binary *+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2792: error: 'zend_oci_globals' has no member+
named 'in_call'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2794: error: 'zend_oci_globals' has no member+
named 'debug_mode'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2801: error: 'zend_oci_globals' has no member+
named 'in_call'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2801: error: 'zend_oci_globals' has no member+
named 'errcode'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2801: error: 'php_oci_connection' has no+
member named 'svc'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2801: error: 'OCI_HTYPE_SVCCTX' undeclared+
+(first use in this function)+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2801: error: 'php_oci_connection' has no+
member named 'server'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2801: error: 'OCI_ATTR_SERVER' undeclared+
+(first use in this function)+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2801: error: 'zend_oci_globals' has no member+
named 'errcode'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2809: error: 'php_oci_connection' has no+
member named 'svc'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2809: error: 'php_oci_connection' has no+
member named 'session'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2809: error: 'OCI_ATTR_SESSION' undeclared+
+(first use in this function)+
named 'errcode'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2818: error: 'php_oci_connection' has no+
member named 'svc'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2818: error: 'zend_oci_globals' has no member+
named 'err'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2818: error: expected expression before ')'+
token
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2818: error: invalid operands to binary *+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2818: error: 'zend_oci_globals' has no member+
named 'in_call'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2820: error: 'zend_oci_globals' has no member+
named 'errcode'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2821: error: 'zend_oci_globals' has no member+
named 'errcode'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2825: error: expected expression before ')'+
token
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2825: error: invalid operands to binary *+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2825: error: 'zend_oci_globals' has no member+
named 'errcode'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2833: error: expected ';' before 'cred_type'+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2837: error: 'cred_type' undeclared (first use in+
this function)
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2837: error: 'OCI_CRED_EXT' undeclared (first+
use in this function)
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2841: error: 'OCI_STMT_CACHE' undeclared+
+(first use in this function)+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2841: error: invalid operands to binary |+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2841: error: incompatible types in assignment+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2843: error: 'zend_oci_globals' has no member+
named 'errcode'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2843: error: 'php_oci_connection' has no+
member named 'svc'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2843: error: 'zend_oci_globals' has no member+
named 'err'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2843: error: 'php_oci_connection' has no+
member named 'session'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2843: error: expected ')' before 'cred_type'+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2843: error: 'zend_oci_globals' has no member+
named 'in_call'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2845: error: 'zend_oci_globals' has no member+
named 'errcode'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2850: error: 'OCI_SUCCESS_WITH_INFO'+
undeclared (first use in this function)
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2857: error: 'zend_oci_globals' has no member+
named 'err'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2857: warning: comparison between pointer and+
integer
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2858: error: 'zend_oci_globals' has no member+
named 'in_call'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2862: error: 'zend_oci_globals' has no member+
named 'errcode'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2862: error: expected expression before ')'+
token
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2862: error: invalid operands to binary *+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2862: error: 'zend_oci_globals' has no member+
named 'in_call'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2864: error: 'zend_oci_globals' has no member+
named 'err'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2991: error: 'ub1' undeclared (first use in this+
function)
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2991: error: expected expression before ')'+
token
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2991: error: invalid operands to binary *+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2991: error: 'zend_oci_globals' has no member+
named 'in_call'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2992: error: 'zend_oci_globals' has no member+
named 'errcode'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2993: error: 'zend_oci_globals' has no member+
named 'errcode'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2997: error: 'php_oci_connection' has no+
member named 'next_pingp'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2999: error: 'zend_oci_globals' has no member+
named 'err'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:2999: warning: comparison between pointer and+
named 'errcode'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:3003: error: 'php_oci_connection' has no+
member named 'next_pingp'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:3003: error: invalid operands to binary >+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:3003: error: 'php_oci_connection' has no+
member named 'next_pingp'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:3003: error: invalid operands to binary >=+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:3006: error: 'php_oci_connection' has no+
member named 'next_pingp'
+/tmp/pear/cache/oci8-1.3.5/oci8.c:3006: error: 'zend_oci_globals' has no member+
named 'spool_hash_key'
+/tmp/pear/cache/oci8-1.3.5/oci8.c: At top level:+
+/tmp/pear/cache/oci8-1.3.5/oci8.c:3082: error: expected '=', ',', ';', 'asm' or+
+'__attribute__' before 'php_oci_ping_init'+
+make: *** [oci8.lo] Error 1+
ERROR: `make' failed
+<server>:~ #+Unset ORACLE_HOME. It should not be set for Instant Client (except in one rare case).
Also instead of leaving the install to "autodetect", try using the form "instantclient,/usr/lib/oracle/10.2.0.4/client/lib". See http://blogs.oracle.com/opal/2009/03/pecl_install_prompts_explained.html for a discussion of answering the PECL install prompts.
Also see http://www.oracle.com/technology/pub/notes/technote_php_instant.html
and http://www.oracle.com/technology/tech/php/pdf/underground-php-oracle-manual.pdf -
Dwm 5.9 Compilation issues
Ok guys, I really need your help.
I am currently with dwm 5.8.2 (everything's fine) and I downloaded 5.9 via ABS.
I launched a makepkg under ~/dwm. And next, I tried to apply this patch called pertag2. diff: https://github.com/simongmzlj/dwmhacks/ … rtag2.diff
It succeeded. Used:
patch -p1 < pertag2.diff
And I modified my config.h as jokerboy suggested me here: https://bbs.archlinux.org/viewtopic.php … 45#p960545
I haven't others patches.
But when I try to compile it, I got many errors messages.
dwm build options:
CFLAGS = -std=c99 -pedantic -Wall -Os -I. -I/usr/include -I/usr/include/X11 -DVERSION="5.9" -DXINERAMA
LDFLAGS = -s -L/usr/lib -lc -L/usr/lib/X11 -lX11 -L/usr/lib/X11 -lXinerama
CC = cc
CC dwm.c
In file included from dwm.c:293:0:
config.h:31:16: erreur: ‘tile’ undeclared here (not in a function)
dwm.c: In function ‘buttonpress’:
dwm.c:450:9: erreur: request for member ‘name’ in something not a structure or union
dwm.c:450:9: erreur: request for member ‘name’ in something not a structure or union
dwm.c:450:4: attention : passing argument 1 of ‘strlen’ from incompatible pointer type [enabled by default]
/usr/include/string.h:399:15: note: expected ‘const char *’ but argument is of type ‘const struct Layout *’
dwm.c:450:4: attention : passing argument 1 of ‘textnw’ from incompatible pointer type [enabled by default]
dwm.c:236:12: note: expected ‘const char *’ but argument is of type ‘const struct Layout *’
dwm.c: In function ‘createmon’:
dwm.c:686:29: erreur: request for member ‘mfact’ in something not a structure or union
dwm.c:686:36: attention : comparaison ordonnée de pointeur avec le zéro entier [-pedantic]
dwm.c:686:61: erreur: request for member ‘mfact’ in something not a structure or union
dwm.c:686:48: erreur: non concordance de type dans une expression conditionnelle
dwm.c:686:16: erreur: incompatible types when assigning to type ‘double’ from type ‘const struct Layout *’
dwm.c:686:3: attention : statement with no effect [-Wunused-value]
dwm.c:687:31: erreur: request for member ‘nmaster’ in something not a structure or union
dwm.c:687:40: attention : comparaison ordonnée de pointeur avec le zéro entier [-pedantic]
dwm.c:687:46: erreur: ‘nmaster’ undeclared (first use in this function)
dwm.c:687:46: note: each undeclared identifier is reported only once for each function it appears in
dwm.c:687:67: erreur: request for member ‘nmaster’ in something not a structure or union
dwm.c:687:18: attention : assignment makes integer from pointer without a cast [enabled by default]
dwm.c:688:26: erreur: request for member ‘layout’ in something not a structure or union
dwm.c: In function ‘drawbar’:
dwm.c:767:10: erreur: request for member ‘name’ in something not a structure or union
dwm.c:767:10: erreur: request for member ‘name’ in something not a structure or union
dwm.c:767:3: attention : passing argument 1 of ‘strlen’ from incompatible pointer type [enabled by default]
/usr/include/string.h:399:15: note: expected ‘const char *’ but argument is of type ‘const struct Layout *’
dwm.c:767:3: attention : passing argument 1 of ‘textnw’ from incompatible pointer type [enabled by default]
dwm.c:236:12: note: expected ‘const char *’ but argument is of type ‘const struct Layout *’
dwm.c:769:19: erreur: request for member ‘name’ in something not a structure or union
dwm.c:769:3: attention : passing argument 1 of ‘drawtext’ from incompatible pointer type [enabled by default]
dwm.c:190:13: note: expected ‘const char *’ but argument is of type ‘const struct Layout *’
dwm.c: Hors de toute fonction :
dwm.c:1550:1: attention : ‘setnmaster’ defined but not used [-Wunused-function]
dwm.c:1539:1: attention : ‘incnmaster’ defined but not used [-Wunused-function]
dwm.c:1691:1: attention : ‘ntile’ defined but not used [-Wunused-function]
make: *** [dwm.o] Erreur 1
Here my config.h:
/* See LICENSE file for copyright and license details. */
/* appearance */
static const char font[] = "-*-terminus-medium-r-*-*-16-*-*-*-*-*-*-*";
static const char normbordercolor[] = "#cccccc";
static const char normbgcolor[] = "#cccccc";
static const char normfgcolor[] = "#000000";
static const char selbordercolor[] = "#0066ff";
static const char selbgcolor[] = "#0066ff";
static const char selfgcolor[] = "#ffffff";
static const unsigned int borderpx = 1; /* border pixel of windows */
static const unsigned int snap = 32; /* snap pixel */
static const Bool showbar = True; /* False means no bar */
static const Bool topbar = True; /* False means bottom bar */
static const Rule rules[] = {
/* class instance title tags mask isfloating monitor */
{ "Gimp", NULL, NULL, 0, True, -1 },
{ "Firefox", NULL, NULL, 1 << 8, False, -1 },
/* layout(s) */
static const int nmaster = 1; /* clients in the master area */
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */
static const Bool resizehints = True; /* True means respect size hints in tiled resizals */
static const Layout layouts[] = {
/* symbol arrange function */
{ "[]=", tile }, /* first entry is default */
{ "><>", NULL }, /* no layout function means floating behavior */
{ "[M]", monocle },
{ "[N]", ntile },
/* tagging */
static const Tag tags[] = {
/* name layout mfact nmaster */
{ "1", &layouts[0], -1, -1 },
{ "2", &layouts[1], -1, -1 },
{ "3", &layouts[2], -1, -1 },
{ "4", &layouts[3], 0.40, -1 },
{ "5", &layouts[0], -1, -1 },
{ "6", &layouts[0], -1, -1 },
{ "7", &layouts[0], -1, -1 },
{ "8", &layouts[0], -1, -1 },
{ "9", &layouts[0], -1, -1 },
/* key definitions */
#define MODKEY Mod1Mask
#define TAGKEYS(KEY,TAG) \
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },
/* helper for spawning shell commands in the pre dwm-5.0 fashion */
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
/* commands */
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", selfgcolor, NULL };
static const char *termcmd[] = { "uxterm", NULL };
static Key keys[] = {
/* modifier key function argument */
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },
{ MODKEY, XK_b, togglebar, {0} },
{ MODKEY, XK_j, focusstack, {.i = +1 } },
{ MODKEY, XK_k, focusstack, {.i = -1 } },
{ MODKEY, XK_a, incnmaster, {.i = +1 } },
{ MODKEY, XK_z, incnmaster, {.i = -1 } },
{ MODKEY, XK_h, setmfact, {.f = -0.05} },
{ MODKEY, XK_l, setmfact, {.f = +0.05} },
{ MODKEY, XK_Return, zoom, {0} },
{ MODKEY, XK_Tab, view, {0} },
{ MODKEY|ShiftMask, XK_c, killclient, {0} },
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },
{ MODKEY, XK_n, setlayout, {.v = &layouts[3]} },
{ MODKEY, XK_space, setlayout, {0} },
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },
{ MODKEY, XK_0, view, {.ui = ~0 } },
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },
{ MODKEY, XK_comma, focusmon, {.i = -1 } },
{ MODKEY, XK_period, focusmon, {.i = +1 } },
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },
TAGKEYS( XK_1, 0)
TAGKEYS( XK_2, 1)
TAGKEYS( XK_3, 2)
TAGKEYS( XK_4, 3)
TAGKEYS( XK_5, 4)
TAGKEYS( XK_6, 5)
TAGKEYS( XK_7, 6)
TAGKEYS( XK_8, 7)
TAGKEYS( XK_9, 8)
{ MODKEY|ShiftMask, XK_q, quit, {0} },
/* button definitions */
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
static Button buttons[] = {
/* click event mask button function argument */
{ ClkLtSymbol, 0, Button1, setlayout, {0} },
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} },
{ ClkWinTitle, 0, Button2, zoom, {0} },
{ ClkStatusText, 0, Button2, spawn, {.v = termcmd } },
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },
{ ClkTagBar, 0, Button1, view, {0} },
{ ClkTagBar, 0, Button3, toggleview, {0} },
{ ClkTagBar, MODKEY, Button1, tag, {0} },
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },
dwm.c
/* See LICENSE file for copyright and license details.
* dynamic window manager is designed like any other X client as well. It is
* driven through handling X events. In contrast to other X clients, a window
* manager selects for SubstructureRedirectMask on the root window, to receive
* events about window (dis-)appearance. Only one X connection at a time is
* allowed to select for this event mask.
* The event handlers of dwm are organized in an array which is accessed
* whenever a new event has been fetched. This allows event dispatching
* in O(1) time.
* Each child of the root window is called a client, except windows which have
* set the override_redirect flag. Clients are organized in a linked client
* list on each monitor, the focus history is remembered through a stack list
* on each monitor. Each client contains a bit array to indicate the tags of a
* client.
* Keys and tagging rules are organized as arrays and defined in config.h.
* To understand everything else, start reading main().
#include <errno.h>
#include <locale.h>
#include <stdarg.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <X11/cursorfont.h>
#include <X11/keysym.h>
#include <X11/Xatom.h>
#include <X11/Xlib.h>
#include <X11/Xproto.h>
#include <X11/Xutil.h>
#ifdef XINERAMA
#include <X11/extensions/Xinerama.h>
#endif /* XINERAMA */
/* macros */
#define BUTTONMASK (ButtonPressMask|ButtonReleaseMask)
#define CLEANMASK(mask) (mask & ~(numlockmask|LockMask) & (ShiftMask|ControlMask|Mod1Mask|Mod2Mask|Mod3Mask|Mod4Mask|Mod5Mask))
#define INRECT(X,Y,RX,RY,RW,RH) ((X) >= (RX) && (X) < (RX) + (RW) && (Y) >= (RY) && (Y) < (RY) + (RH))
#define ISVISIBLE(C) ((C->tags & C->mon->tagset[C->mon->seltags]))
#define LENGTH(X) (sizeof X / sizeof X[0])
#define MAX(A, B) ((A) > (B) ? (A) : (B))
#define MIN(A, B) ((A) < (B) ? (A) : (B))
#define MOUSEMASK (BUTTONMASK|PointerMotionMask)
#define WIDTH(X) ((X)->w + 2 * (X)->bw)
#define HEIGHT(X) ((X)->h + 2 * (X)->bw)
#define TAGMASK ((1 << LENGTH(tags)) - 1)
#define TEXTW(X) (textnw(X, strlen(X)) + dc.font.height)
/* enums */
enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */
enum { ColBorder, ColFG, ColBG, ColLast }; /* color */
enum { NetSupported, NetWMName, NetWMState,
NetWMFullscreen, NetActiveWindow, NetLast }; /* EWMH atoms */
enum { WMProtocols, WMDelete, WMState, WMTakeFocus, WMLast }; /* default atoms */
enum { ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle,
ClkClientWin, ClkRootWin, ClkLast }; /* clicks */
typedef union {
int i;
unsigned int ui;
float f;
const void *v;
} Arg;
typedef struct {
unsigned int click;
unsigned int mask;
unsigned int button;
void (*func)(const Arg *arg);
const Arg arg;
} Button;
typedef struct Monitor Monitor;
typedef struct Client Client;
struct Client {
char name[256];
float mina, maxa;
int x, y, w, h;
int oldx, oldy, oldw, oldh;
int basew, baseh, incw, inch, maxw, maxh, minw, minh;
int bw, oldbw;
unsigned int tags;
Bool isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen;
Client *next;
Client *snext;
Monitor *mon;
Window win;
typedef struct {
int x, y, w, h;
unsigned long norm[ColLast];
unsigned long sel[ColLast];
Drawable drawable;
GC gc;
struct {
int ascent;
int descent;
int height;
XFontSet set;
XFontStruct *xfont;
} font;
} DC; /* draw context */
typedef struct {
unsigned int mod;
KeySym keysym;
void (*func)(const Arg *);
const Arg arg;
} Key;
typedef struct {
const char *symbol;
void (*arrange)(Monitor *);
} Layout;
struct Monitor {
char ltsymbol[16];
int num;
int by; /* bar geometry */
int mx, my, mw, mh; /* screen size */
int wx, wy, ww, wh; /* window area */
unsigned int seltags;
unsigned int sellt;
unsigned int tagset[2];
Bool showbar;
Bool topbar;
Client *clients;
Client *sel;
Client *stack;
Monitor *next;
Window barwin;
const Layout *lt[2];
int curtag;
int prevtag;
const Layout **lts;
double *mfacts;
int *nmasters;
typedef struct {
const char *name;
const Layout *layout;
float mfact;
int nmaster;
} Tag;
typedef struct {
const char *class;
const char *instance;
const char *title;
unsigned int tags;
Bool isfloating;
int monitor;
} Rule;
/* function declarations */
static void applyrules(Client *c);
static Bool applysizehints(Client *c, int *x, int *y, int *w, int *h, Bool interact);
static void arrange(Monitor *m);
static void arrangemon(Monitor *m);
static void attach(Client *c);
static void attachstack(Client *c);
static void buttonpress(XEvent *e);
static void checkotherwm(void);
static void cleanup(void);
static void cleanupmon(Monitor *mon);
static void clearurgent(Client *c);
static void clientmessage(XEvent *e);
static void configure(Client *c);
static void configurenotify(XEvent *e);
static void configurerequest(XEvent *e);
static Monitor *createmon(void);
static void destroynotify(XEvent *e);
static void detach(Client *c);
static void detachstack(Client *c);
static void die(const char *errstr, ...);
static Monitor *dirtomon(int dir);
static void drawbar(Monitor *m);
static void drawbars(void);
static void drawsquare(Bool filled, Bool empty, Bool invert, unsigned long col[ColLast]);
static void drawtext(const char *text, unsigned long col[ColLast], Bool invert);
static void enternotify(XEvent *e);
static void expose(XEvent *e);
static void focus(Client *c);
static void focusin(XEvent *e);
static void focusmon(const Arg *arg);
static void focusstack(const Arg *arg);
static unsigned long getcolor(const char *colstr);
static Bool getrootptr(int *x, int *y);
static long getstate(Window w);
static Bool gettextprop(Window w, Atom atom, char *text, unsigned int size);
static void grabbuttons(Client *c, Bool focused);
static void grabkeys(void);
static void initfont(const char *fontstr);
static void keypress(XEvent *e);
static void killclient(const Arg *arg);
static void manage(Window w, XWindowAttributes *wa);
static void mappingnotify(XEvent *e);
static void maprequest(XEvent *e);
static void monocle(Monitor *m);
static void movemouse(const Arg *arg);
static Client *nexttiled(Client *c);
static void pop(Client *);
static void propertynotify(XEvent *e);
static Monitor *ptrtomon(int x, int y);
static void quit(const Arg *arg);
static void resize(Client *c, int x, int y, int w, int h, Bool interact);
static void resizeclient(Client *c, int x, int y, int w, int h);
static void resizemouse(const Arg *arg);
static void restack(Monitor *m);
static void run(void);
static void scan(void);
static Bool sendevent(Client *c, Atom proto);
static void sendmon(Client *c, Monitor *m);
static void setclientstate(Client *c, long state);
static void setfocus(Client *c);
static void setlayout(const Arg *arg);
static void setmfact(const Arg *arg);
static void setnmaster(const Arg *arg);
static void incnmaster(const Arg *arg);
static void setup(void);
static void showhide(Client *c);
static void sigchld(int unused);
static void spawn(const Arg *arg);
static void tag(const Arg *arg);
static void tagmon(const Arg *arg);
static int textnw(const char *text, unsigned int len);
static void ntile(Monitor *);
static void togglebar(const Arg *arg);
static void togglefloating(const Arg *arg);
static void toggletag(const Arg *arg);
static void toggleview(const Arg *arg);
static void unfocus(Client *c, Bool setfocus);
static void unmanage(Client *c, Bool destroyed);
static void unmapnotify(XEvent *e);
static Bool updategeom(void);
static void updatebarpos(Monitor *m);
static void updatebars(void);
static void updatenumlockmask(void);
static void updatesizehints(Client *c);
static void updatestatus(void);
static void updatetitle(Client *c);
static void updatewmhints(Client *c);
static void view(const Arg *arg);
static Client *wintoclient(Window w);
static Monitor *wintomon(Window w);
static int xerror(Display *dpy, XErrorEvent *ee);
static int xerrordummy(Display *dpy, XErrorEvent *ee);
static int xerrorstart(Display *dpy, XErrorEvent *ee);
static void zoom(const Arg *arg);
/* variables */
static const char broken[] = "broken";
static char stext[256];
static int screen;
static int sw, sh; /* X display screen geometry width, height */
static int bh, blw = 0; /* bar geometry */
static int (*xerrorxlib)(Display *, XErrorEvent *);
static unsigned int numlockmask = 0;
static void (*handler[LASTEvent]) (XEvent *) = {
[ButtonPress] = buttonpress,
[ClientMessage] = clientmessage,
[ConfigureRequest] = configurerequest,
[ConfigureNotify] = configurenotify,
[DestroyNotify] = destroynotify,
[EnterNotify] = enternotify,
[Expose] = expose,
[FocusIn] = focusin,
[KeyPress] = keypress,
[MappingNotify] = mappingnotify,
[MapRequest] = maprequest,
[PropertyNotify] = propertynotify,
[UnmapNotify] = unmapnotify
static Atom wmatom[WMLast], netatom[NetLast];
static Bool running = True;
static Cursor cursor[CurLast];
static Display *dpy;
static DC dc;
static Monitor *mons = NULL, *selmon = NULL;
static Window root;
/* configuration, allows nested code to access above variables */
#include "config.h"
/* compile-time check if all tags fit into an unsigned int bit array. */
struct NumTags { char limitexceeded[LENGTH(tags) > 31 ? -1 : 1]; };
/* function implementations */
void
applyrules(Client *c) {
const char *class, *instance;
unsigned int i;
const Rule *r;
Monitor *m;
XClassHint ch = { 0 };
/* rule matching */
c->isfloating = c->tags = 0;
if(XGetClassHint(dpy, c->win, &ch)) {
class = ch.res_class ? ch.res_class : broken;
instance = ch.res_name ? ch.res_name : broken;
for(i = 0; i < LENGTH(rules); i++) {
r = &rules[i];
if((!r->title || strstr(c->name, r->title))
&& (!r->class || strstr(class, r->class))
&& (!r->instance || strstr(instance, r->instance)))
c->isfloating = r->isfloating;
c->tags |= r->tags;
for(m = mons; m && m->num != r->monitor; m = m->next);
if(m)
c->mon = m;
if(ch.res_class)
XFree(ch.res_class);
if(ch.res_name)
XFree(ch.res_name);
c->tags = c->tags & TAGMASK ? c->tags & TAGMASK : c->mon->tagset[c->mon->seltags];
Bool
applysizehints(Client *c, int *x, int *y, int *w, int *h, Bool interact) {
Bool baseismin;
Monitor *m = c->mon;
/* set minimum possible */
*w = MAX(1, *w);
*h = MAX(1, *h);
if(interact) {
if(*x > sw)
*x = sw - WIDTH(c);
if(*y > sh)
*y = sh - HEIGHT(c);
if(*x + *w + 2 * c->bw < 0)
*x = 0;
if(*y + *h + 2 * c->bw < 0)
*y = 0;
else {
if(*x > m->mx + m->mw)
*x = m->mx + m->mw - WIDTH(c);
if(*y > m->my + m->mh)
*y = m->my + m->mh - HEIGHT(c);
if(*x + *w + 2 * c->bw < m->mx)
*x = m->mx;
if(*y + *h + 2 * c->bw < m->my)
*y = m->my;
if(*h < bh)
*h = bh;
if(*w < bh)
*w = bh;
if(resizehints || c->isfloating) {
/* see last two sentences in ICCCM 4.1.2.3 */
baseismin = c->basew == c->minw && c->baseh == c->minh;
if(!baseismin) { /* temporarily remove base dimensions */
*w -= c->basew;
*h -= c->baseh;
/* adjust for aspect limits */
if(c->mina > 0 && c->maxa > 0) {
if(c->maxa < (float)*w / *h)
*w = *h * c->maxa + 0.5;
else if(c->mina < (float)*h / *w)
*h = *w * c->mina + 0.5;
if(baseismin) { /* increment calculation requires this */
*w -= c->basew;
*h -= c->baseh;
/* adjust for increment value */
if(c->incw)
*w -= *w % c->incw;
if(c->inch)
*h -= *h % c->inch;
/* restore base dimensions */
*w = MAX(*w + c->basew, c->minw);
*h = MAX(*h + c->baseh, c->minh);
if(c->maxw)
*w = MIN(*w, c->maxw);
if(c->maxh)
*h = MIN(*h, c->maxh);
return *x != c->x || *y != c->y || *w != c->w || *h != c->h;
void
arrange(Monitor *m) {
if(m)
showhide(m->stack);
else for(m = mons; m; m = m->next)
showhide(m->stack);
focus(NULL);
if(m)
arrangemon(m);
else for(m = mons; m; m = m->next)
arrangemon(m);
void
arrangemon(Monitor *m) {
strncpy(m->ltsymbol, m->lt[m->sellt]->symbol, sizeof m->ltsymbol);
if(m->lt[m->sellt]->arrange)
m->lt[m->sellt]->arrange(m);
restack(m);
void
attach(Client *c) {
c->next = c->mon->clients;
c->mon->clients = c;
void
attachstack(Client *c) {
c->snext = c->mon->stack;
c->mon->stack = c;
void
buttonpress(XEvent *e) {
unsigned int i, x, click;
Arg arg = {0};
Client *c;
Monitor *m;
XButtonPressedEvent *ev = &e->xbutton;
click = ClkRootWin;
/* focus monitor if necessary */
if((m = wintomon(ev->window)) && m != selmon) {
unfocus(selmon->sel, True);
selmon = m;
focus(NULL);
if(ev->window == selmon->barwin) {
i = x = 0;
do {
x += TEXTW(tags[i].name);
} while(ev->x >= x && ++i < LENGTH(tags));
if(i < LENGTH(tags)) {
click = ClkTagBar;
arg.ui = 1 << i;
else if(ev->x < x + blw)
click = ClkLtSymbol;
else if(ev->x > selmon->ww - TEXTW(stext))
click = ClkStatusText;
else
click = ClkWinTitle;
else if((c = wintoclient(ev->window))) {
focus(c);
click = ClkClientWin;
for(i = 0; i < LENGTH(buttons); i++)
if(click == buttons[i].click && buttons[i].func && buttons[i].button == ev->button
&& CLEANMASK(buttons[i].mask) == CLEANMASK(ev->state))
buttons[i].func(click == ClkTagBar && buttons[i].arg.i == 0 ? &arg : &buttons[i].arg);
void
checkotherwm(void) {
xerrorxlib = XSetErrorHandler(xerrorstart);
/* this causes an error if some other window manager is running */
XSelectInput(dpy, DefaultRootWindow(dpy), SubstructureRedirectMask);
XSync(dpy, False);
XSetErrorHandler(xerror);
XSync(dpy, False);
void
cleanup(void) {
Arg a = {.ui = ~0};
Layout foo = { "", NULL };
Monitor *m;
view(&a);
selmon->lt[selmon->sellt] = &foo;
for(m = mons; m; m = m->next)
while(m->stack)
unmanage(m->stack, False);
if(dc.font.set)
XFreeFontSet(dpy, dc.font.set);
else
XFreeFont(dpy, dc.font.xfont);
XUngrabKey(dpy, AnyKey, AnyModifier, root);
XFreePixmap(dpy, dc.drawable);
XFreeGC(dpy, dc.gc);
XFreeCursor(dpy, cursor[CurNormal]);
XFreeCursor(dpy, cursor[CurResize]);
XFreeCursor(dpy, cursor[CurMove]);
while(mons)
cleanupmon(mons);
XSync(dpy, False);
XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime);
void
cleanupmon(Monitor *mon) {
Monitor *m;
if(mon == mons)
mons = mons->next;
else {
for(m = mons; m && m->next != mon; m = m->next);
m->next = mon->next;
XUnmapWindow(dpy, mon->barwin);
XDestroyWindow(dpy, mon->barwin);
free(mon->mfacts);
free(mon->nmasters);
free(mon->lts);
free(mon);
void
clearurgent(Client *c) {
XWMHints *wmh;
c->isurgent = False;
if(!(wmh = XGetWMHints(dpy, c->win)))
return;
wmh->flags &= ~XUrgencyHint;
XSetWMHints(dpy, c->win, wmh);
XFree(wmh);
void
clientmessage(XEvent *e) {
XClientMessageEvent *cme = &e->xclient;
Client *c = wintoclient(cme->window);
if(!c)
return;
if(cme->message_type == netatom[NetWMState] && cme->data.l[1] == netatom[NetWMFullscreen]) {
if(cme->data.l[0] && !c->isfullscreen) {
XChangeProperty(dpy, cme->window, netatom[NetWMState], XA_ATOM, 32,
PropModeReplace, (unsigned char*)&netatom[NetWMFullscreen], 1);
c->isfullscreen = True;
c->oldstate = c->isfloating;
c->oldbw = c->bw;
c->bw = 0;
c->isfloating = True;
resizeclient(c, c->mon->mx, c->mon->my, c->mon->mw, c->mon->mh);
XRaiseWindow(dpy, c->win);
else {
XChangeProperty(dpy, cme->window, netatom[NetWMState], XA_ATOM, 32,
PropModeReplace, (unsigned char*)0, 0);
c->isfullscreen = False;
c->isfloating = c->oldstate;
c->bw = c->oldbw;
c->x = c->oldx;
c->y = c->oldy;
c->w = c->oldw;
c->h = c->oldh;
resizeclient(c, c->x, c->y, c->w, c->h);
arrange(c->mon);
else if(cme->message_type == netatom[NetActiveWindow]) {
if(!ISVISIBLE(c)) {
c->mon->seltags ^= 1;
c->mon->tagset[c->mon->seltags] = c->tags;
pop(c);
void
configure(Client *c) {
XConfigureEvent ce;
ce.type = ConfigureNotify;
ce.display = dpy;
ce.event = c->win;
ce.window = c->win;
ce.x = c->x;
ce.y = c->y;
ce.width = c->w;
ce.height = c->h;
ce.border_width = c->bw;
ce.above = None;
ce.override_redirect = False;
XSendEvent(dpy, c->win, False, StructureNotifyMask, (XEvent *)&ce);
void
configurenotify(XEvent *e) {
Monitor *m;
XConfigureEvent *ev = &e->xconfigure;
Bool dirty;
if(ev->window == root) {
dirty = (sw != ev->width);
sw = ev->width;
sh = ev->height;
if(updategeom() || dirty) {
if(dc.drawable != 0)
XFreePixmap(dpy, dc.drawable);
dc.drawable = XCreatePixmap(dpy, root, sw, bh, DefaultDepth(dpy, screen));
updatebars();
for(m = mons; m; m = m->next)
XMoveResizeWindow(dpy, m->barwin, m->wx, m->by, m->ww, bh);
arrange(NULL);
void
configurerequest(XEvent *e) {
Client *c;
Monitor *m;
XConfigureRequestEvent *ev = &e->xconfigurerequest;
XWindowChanges wc;
if((c = wintoclient(ev->window))) {
if(ev->value_mask & CWBorderWidth)
c->bw = ev->border_width;
else if(c->isfloating || !selmon->lt[selmon->sellt]->arrange) {
m = c->mon;
if(ev->value_mask & CWX)
c->x = m->mx + ev->x;
if(ev->value_mask & CWY)
c->y = m->my + ev->y;
if(ev->value_mask & CWWidth)
c->w = ev->width;
if(ev->value_mask & CWHeight)
c->h = ev->height;
if((c->x + c->w) > m->mx + m->mw && c->isfloating)
c->x = m->mx + (m->mw / 2 - c->w / 2); /* center in x direction */
if((c->y + c->h) > m->my + m->mh && c->isfloating)
c->y = m->my + (m->mh / 2 - c->h / 2); /* center in y direction */
if((ev->value_mask & (CWX|CWY)) && !(ev->value_mask & (CWWidth|CWHeight)))
configure(c);
if(ISVISIBLE(c))
XMoveResizeWindow(dpy, c->win, c->x, c->y, c->w, c->h);
else
configure(c);
else {
wc.x = ev->x;
wc.y = ev->y;
wc.width = ev->width;
wc.height = ev->height;
wc.border_width = ev->border_width;
wc.sibling = ev->above;
wc.stack_mode = ev->detail;
XConfigureWindow(dpy, ev->window, ev->value_mask, &wc);
XSync(dpy, False);
/* TODO Check how many times createmon is called */
Monitor *
createmon(void) {
Monitor *m;
int i, numtags = LENGTH(tags) + 1;
if(!(m = (Monitor *)calloc(1, sizeof(Monitor))))
die("fatal: could not malloc() %u bytes\n", sizeof(Monitor));
if(!(m->mfacts = calloc(sizeof(double), numtags)))
die("fatal: could not malloc() %u bytes\n", sizeof(double) * numtags);
if(!(m->nmasters = calloc(sizeof(int), numtags)))
die("fatal: could not malloc() %u bytes\n", sizeof(int) * numtags);
if(!(m->lts = calloc(sizeof(Layout *), numtags)))
die("fatal: could not malloc() %u bytes\n", sizeof(Layout *) * numtags);
m->tagset[0] = m->tagset[1] = 1;
m->showbar = showbar;
m->topbar = topbar;
m->curtag = m->prevtag = 1;
for(i = 1; i < numtags; i++) {
m->mfacts[i] = tags[i - 1].mfact < 0 ? mfact : tags[i - 1].mfact;
m->nmasters[i] = tags[i - 1].nmaster < 0 ? nmaster : tags[i - 1].nmaster;
m->lts[i] = tags[i - 1].layout;
m->lt[0] = m->lts[m->curtag];
m->lt[1] = &layouts[1 % LENGTH(layouts)];
strncpy(m->ltsymbol, m->lt[0]->symbol, sizeof m->ltsymbol);
return m;
void
destroynotify(XEvent *e) {
Client *c;
XDestroyWindowEvent *ev = &e->xdestroywindow;
if((c = wintoclient(ev->window)))
unmanage(c, True);
void
detach(Client *c) {
Client **tc;
for(tc = &c->mon->clients; *tc && *tc != c; tc = &(*tc)->next);
*tc = c->next;
void
detachstack(Client *c) {
Client **tc, *t;
for(tc = &c->mon->stack; *tc && *tc != c; tc = &(*tc)->snext);
*tc = c->snext;
if(c == c->mon->sel) {
for(t = c->mon->stack; t && !ISVISIBLE(t); t = t->snext);
c->mon->sel = t;
void
die(const char *errstr, ...) {
va_list ap;
va_start(ap, errstr);
vfprintf(stderr, errstr, ap);
va_end(ap);
exit(EXIT_FAILURE);
Monitor *
dirtomon(int dir) {
Monitor *m = NULL;
if(dir > 0) {
if(!(m = selmon->next))
m = mons;
else {
if(selmon == mons)
for(m = mons; m->next; m = m->next);
else
for(m = mons; m->next != selmon; m = m->next);
return m;
void
drawbar(Monitor *m) {
int x;
unsigned int i, occ = 0, urg = 0;
unsigned long *col;
Client *c;
for(c = m->clients; c; c = c->next) {
occ |= c->tags;
if(c->isurgent)
urg |= c->tags;
dc.x = 0;
for(i = 0; i < LENGTH(tags); i++) {
dc.w = TEXTW(tags[i].name);
col = m->tagset[m->seltags] & 1 << i ? dc.sel : dc.norm;
drawtext(tags[i].name, col, urg & 1 << i);
drawsquare(m == selmon && selmon->sel && selmon->sel->tags & 1 << i,
occ & 1 << i, urg & 1 << i, col);
dc.x += dc.w;
dc.w = blw = TEXTW(m->ltsymbol);
drawtext(m->ltsymbol, dc.norm, False);
dc.x += dc.w;
x = dc.x;
if(m == selmon) { /* status is only drawn on selected monitor */
dc.w = TEXTW(stext);
dc.x = m->ww - dc.w;
if(dc.x < x) {
dc.x = x;
dc.w = m->ww - x;
drawtext(stext, dc.norm, False);
else
dc.x = m->ww;
if((dc.w = dc.x - x) > bh) {
dc.x = x;
if(m->sel) {
col = m == selmon ? dc.sel : dc.norm;
drawtext(m->sel->name, col, False);
drawsquare(m->sel->isfixed, m->sel->isfloating, False, col);
else
drawtext(NULL, dc.norm, False);
XCopyArea(dpy, dc.drawable, m->barwin, dc.gc, 0, 0, m->ww, bh, 0, 0);
XSync(dpy, False);
void
drawbars(void) {
Monitor *m;
for(m = mons; m; m = m->next)
drawbar(m);
void
drawsquare(Bool filled, Bool empty, Bool invert, unsigned long col[ColLast]) {
int x;
XSetForeground(dpy, dc.gc, col[invert ? ColBG : ColFG]);
x = (dc.font.ascent + dc.font.descent + 2) / 4;
if(filled)
XFillRectangle(dpy, dc.drawable, dc.gc, dc.x+1, dc.y+1, x+1, x+1);
else if(empty)
XDrawRectangle(dpy, dc.drawable, dc.gc, dc.x+1, dc.y+1, x, x);
void
drawtext(const char *text, unsigned long col[ColLast], Bool invert) {
char buf[256];
int i, x, y, h, len, olen;
XSetForeground(dpy, dc.gc, col[invert ? ColFG : ColBG]);
XFillRectangle(dpy, dc.drawable, dc.gc, dc.x, dc.y, dc.w, dc.h);
if(!text)
return;
olen = strlen(text);
h = dc.font.ascent + dc.font.descent;
y = dc.y + (dc.h / 2) - (h / 2) + dc.font.ascent;
x = dc.x + (h / 2);
/* shorten text if necessary */
for(len = MIN(olen, sizeof buf); len && textnw(text, len) > dc.w - h; len--);
if(!len)
return;
memcpy(buf, text, len);
if(len < olen)
for(i = len; i && i > len - 3; buf[--i] = '.');
XSetForeground(dpy, dc.gc, col[invert ? ColBG : ColFG]);
if(dc.font.set)
XmbDrawString(dpy, dc.drawable, dc.font.set, dc.gc, x, y, buf, len);
else
XDrawString(dpy, dc.drawable, dc.gc, x, y, buf, len);
void
enternotify(XEvent *e) {
Client *c;
Monitor *m;
XCrossingEvent *ev = &e->xcrossing;
if((ev->mode != NotifyNormal || ev->detail == NotifyInferior) && ev->window != root)
return;
c = wintoclient(ev->window);
m = c ? c->mon : wintomon(ev->window);
if(m != selmon) {
unfocus(selmon->sel, True);
selmon = m;
else if(!c || c == selmon->sel)
return;
focus(c);
void
expose(XEvent *e) {
Monitor *m;
XExposeEvent *ev = &e->xexpose;
if(ev->count == 0 && (m = wintomon(ev->window)))
drawbar(m);
void
focus(Client *c) {
if(!c || !ISVISIBLE(c))
for(c = selmon->stack; c && !ISVISIBLE(c); c = c->snext);
/* was if(selmon->sel) */
if(selmon->sel && selmon->sel != c)
unfocus(selmon->sel, False);
if(c) {
if(c->mon != selmon)
selmon = c->mon;
if(c->isurgent)
clearurgent(c);
detachstack(c);
attachstack(c);
grabbuttons(c, True);
XSetWindowBorder(dpy, c->win, dc.sel[ColBorder]);
setfocus(c);
else
XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
selmon->sel = c;
drawbars();
void
focusin(XEvent *e) { /* there are some broken focus acquiring clients */
XFocusChangeEvent *ev = &e->xfocus;
if(selmon->sel && ev->window != selmon->sel->win)
setfocus(selmon->sel);
void
focusmon(const Arg *arg) {
Monitor *m;
if(!mons->next)
return;
if((m = dirtomon(arg->i)) == selmon)
return;
unfocus(selmon->sel, True);
selmon = m;
focus(NULL);
void
focusstack(const Arg *arg) {
Client *c = NULL, *i;
if(!selmon->sel)
return;
if(arg->i > 0) {
for(c = selmon->sel->next; c && !ISVISIBLE(c); c = c->next);
if(!c)
for(c = selmon->clients; c && !ISVISIBLE(c); c = c->next);
else {
for(i = selmon->clients; i != selmon->sel; i = i->next)
if(ISVISIBLE(i))
c = i;
if(!c)
for(; i; i = i->next)
if(ISVISIBLE(i))
c = i;
if(c) {
focus(c);
restack(selmon);
unsigned long
getcolor(const char *colstr) {
Colormap cmap = DefaultColormap(dpy, screen);
XColor color;
if(!XAllocNamedColor(dpy, cmap, colstr, &color, &color))
die("error, cannot allocate color '%s'\n", colstr);
return color.pixel;
Bool
getrootptr(int *x, int *y) {
int di;
unsigned int dui;
Window dummy;
return XQueryPointer(dpy, root, &dummy, &dummy, x, y, &di, &di, &dui);
long
getstate(Window w) {
int format;
long result = -1;
unsigned char *p = NULL;
unsigned long n, extra;
Atom real;
if(XGetWindowProperty(dpy, w, wmatom[WMState], 0L, 2L, False, wmatom[WMState],
&real, &format, &n, &extra, (unsigned char **)&p) != Success)
return -1;
if(n != 0)
result = *p;
XFree(p);
return result;
Bool
gettextprop(Window w, Atom atom, char *text, unsigned int size) {
char **list = NULL;
int n;
XTextProperty name;
if(!text || size == 0)
return False;
text[0] = '\0';
XGetTextProperty(dpy, w, &name, atom);
if(!name.nitems)
return False;
if(name.encoding == XA_STRING)
strncpy(text, (char *)name.value, size - 1);
else {
if(XmbTextPropertyToTextList(dpy, &name, &list, &n) >= Success && n > 0 && *list) {
strncpy(text, *list, size - 1);
XFreeStringList(list);
text[size - 1] = '\0';
XFree(name.value);
return True;
void
grabbuttons(Client *c, Bool focused) {
updatenumlockmask();
unsigned int i, j;
unsigned int modifiers[] = { 0, LockMask, numlockmask, numlockmask|LockMask };
XUngrabButton(dpy, AnyButton, AnyModifier, c->win);
if(focused) {
for(i = 0; i < LENGTH(buttons); i++)
if(buttons[i].click == ClkClientWin)
for(j = 0; j < LENGTH(modifiers); j++)
XGrabButton(dpy, buttons[i].button,
buttons[i].mask | modifiers[j],
c->win, False, BUTTONMASK,
GrabModeAsync, GrabModeSync, None, None);
else
XGrabButton(dpy, AnyButton, AnyModifier, c->win, False,
BUTTONMASK, GrabModeAsync, GrabModeSync, None, None);
void
grabkeys(void) {
updatenumlockmask();
unsigned int i, j;
unsigned int modifiers[] = { 0, LockMask, numlockmask, numlockmask|LockMask };
KeyCode code;
XUngrabKey(dpy, AnyKey, AnyModifier, root);
for(i = 0; i < LENGTH(keys); i++) {
if((code = XKeysymToKeycode(dpy, keys[i].keysym)))
for(j = 0; j < LENGTH(modifiers); j++)
XGrabKey(dpy, code, keys[i].mod | modifiers[j], root,
True, GrabModeAsync, GrabModeAsync);
void
initfont(const char *fontstr) {
char *def, **missing;
int n;
missing = NULL;
dc.font.set = XCreateFontSet(dpy, fontstr, &missing, &n, &def);
if(missing) {
while(n--)
fprintf(stderr, "dwm: missing fontset: %s\n", missing[n]);
XFreeStringList(missing);
if(dc.font.set) {
XFontStruct **xfonts;
char **font_names;
dc.font.ascent = dc.font.descent = 0;
XExtentsOfFontSet(dc.font.set);
n = XFontsOfFontSet(dc.font.set, &xfonts, &font_names);
while(n--) {
dc.font.ascent = MAX(dc.font.ascent, (*xfonts)->ascent);
dc.font.descent = MAX(dc.font.descent,(*xfonts)->descent);
xfonts++;
else {
if(!(dc.font.xfont = XLoadQueryFont(dpy, fontstr))
&& !(dc.font.xfont = XLoadQueryFont(dpy, "fixed")))
die("error, cannot load font: '%s'\n", fontstr);
dc.font.ascent = dc.font.xfont->ascent;
dc.font.descent = dc.font.xfont->descent;
dc.font.height = dc.font.ascent + dc.font.descent;
#ifdef XINERAMA
static Bool
isuniquegeom(XineramaScreenInfo *unique, size_t n, XineramaScreenInfo *info) {
while(n--)
if(unique[n].x_org == info->x_org && unique[n].y_org == info->y_org
&& unique[n].width == info->width && unique[n].height == info->height)
return False;
return True;
#endif /* XINERAMA */
void
keypress(XEvent *e) {
unsigned int i;
KeySym keysym;
XKeyEvent *ev;
ev = &e->xkey;
keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0);
for(i = 0; i < LENGTH(keys); i++)
if(keysym == keys[i].keysym
&& CLEANMASK(keys[i].mod) == CLEANMASK(ev->state)
&& keys[i].func)
keys[i].func(&(keys[i].arg));
void
killclient(const Arg *arg) {
if(!selmon->sel)
return;
if(!sendevent(selmon->sel, wmatom[WMDelete])) {
XGrabServer(dpy);
XSetErrorHandler(xerrordummy);
XSetCloseDownMode(dpy, DestroyAll);
XKillClient(dpy, selmon->sel->win);
XSync(dpy, False);
XSetErrorHandler(xerror);
XUngrabServer(dpy);
void
manage(Window w, XWindowAttributes *wa) {
Client *c, *t = NULL;
Window trans = None;
XWindowChanges wc;
if(!(c = calloc(1, sizeof(Client))))
die("fatal: could not malloc() %u bytes\n", sizeof(Client));
c->win = w;
updatetitle(c);
if(XGetTransientForHint(dpy, w, &trans) && (t = wintoclient(trans))) {
c->mon = t->mon;
c->tags = t->tags;
else {
c->mon = selmon;
applyrules(c);
/* geometry */
c->x = c->oldx = wa->x;
c->y = c->oldy = wa->y;
c->w = c->oldw = wa->width;
c->h = c->oldh = wa->height;
c->oldbw = wa->border_width;
if(c->w == c->mon->mw && c->h == c->mon->mh) {
c->isfloating = True;
c->x = c->mon->mx;
c->y = c->mon->my;
c->bw = 0;
else {
if(c->x + WIDTH(c) > c->mon->mx + c->mon->mw)
c->x = c->mon->mx + c->mon->mw - WIDTH(c);
if(c->y + HEIGHT(c) > c->mon->my + c->mon->mh)
c->y = c->mon->my + c->mon->mh - HEIGHT(c);
c->x = MAX(c->x, c->mon->mx);
/* only fix client y-offset, if the client center might cover the bar */
c->y = MAX(c->y, ((c->mon->by == 0) && (c->x + (c->w / 2) >= c->mon->wx)
&& (c->x + (c->w / 2) < c->mon->wx + c->mon->ww)) ? bh : c->mon->my);
c->bw = borderpx;
wc.border_width = c->bw;
XConfigureWindow(dpy, w, CWBorderWidth, &wc);
XSetWindowBorder(dpy, w, dc.norm[ColBorder]);
configure(c); /* propagates border_width, if size doesn't change */
updatesizehints(c);
updatewmhints(c);
XSelectInput(dpy, w, EnterWindowMask|FocusChangeMask|PropertyChangeMask|StructureNotifyMask);
grabbuttons(c, False);
if(!c->isfloating)
c->isfloating = c->oldstate = trans != None || c->isfixed;
if(c->isfloating)
XRaiseWindow(dpy, c->win);
attach(c);
attachstack(c);
XMoveResizeWindow(dpy, c->win, c->x + 2 * sw, c->y, c->w, c->h); /* some windows require this */
XMapWindow(dpy, c->win);
setclientstate(c, NormalState);
arrange(c->mon);
void
mappingnotify(XEvent *e) {
XMappingEvent *ev = &e->xmapping;
XRefreshKeyboardMapping(ev);
if(ev->request == MappingKeyboard)
grabkeys();
void
maprequest(XEvent *e) {
static XWindowAttributes wa;
XMapRequestEvent *ev = &e->xmaprequest;
if(!XGetWindowAttributes(dpy, ev->window, &wa))
return;
if(wa.override_redirect)
return;
if(!wintoclient(ev->window))
manage(ev->window, &wa);
void
monocle(Monitor *m) {
unsigned int n = 0;
Client *c;
for(c = m->clients; c; c = c->next)
if(ISVISIBLE(c))
n++;
if(n > 0) /* override layout symbol */
snprintf(m->ltsymbol, sizeof m->ltsymbol, "[%d]", n);
for(c = nexttiled(m->clients); c; c = nexttiled(c->next))
resize(c, m->wx, m->wy, m->ww - 2 * c->bw, m->wh - 2 * c->bw, False);
void
movemouse(const Arg *arg) {
int x, y, ocx, ocy, nx, ny;
Client *c;
Monitor *m;
XEvent ev;
if(!(c = selmon->sel))
return;
restack(selmon);
ocx = c->x;
ocy = c->y;
if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync,
None, cursor[CurMove], CurrentTime) != GrabSuccess)
return;
if(!getrootptr(&x, &y))
return;
do {
XMaskEvent(dpy, MOUSEMASK|ExposureMask|SubstructureRedirectMask, &ev);
switch(ev.type) {
case ConfigureRequest:
case Expose:
case MapRequest:
handler[ev.type](&ev);
break;
case MotionNotify:
nx = ocx + (ev.xmotion.x - x);
ny = ocy + (ev.xmotion.y - y);
if(nx >= selmon->wx && nx <= selmon->wx + selmon->ww
&& ny >= selmon->wy && ny <= selmon->wy + selmon->wh) {
if(abs(selmon->wx - nx) < snap)
nx = selmon->wx;
else if(abs((selmon->wx + selmon->ww) - (nx + WIDTH(c))) < snap)
nx = selmon->wx + selmon->ww - WIDTH(c);
if(abs(selmon->wy - ny) < snap)
ny = selmon->wy;
else if(abs((selmon->wy + selmon->wh) - (ny + HEIGHT(c))) < snap)
ny = selmon->wy + selmon->wh - HEIGHT(c);
if(!c->isfloating && selmon->lt[selmon->sellt]->arrange
&& (abs(nx - c->x) > snap || abs(ny - c->y) > snap))
togglefloating(NULL);
if(!selmon->lt[selmon->sellt]->arrange || c->isfloating)
resize(c, nx, ny, c->w, c->h, True);
break;
} while(ev.type != ButtonRelease);
XUngrabPointer(dpy, CurrentTime);
if((m = ptrtomon(c->x + c->w / 2, c->y + c->h / 2)) != selmon) {
sendmon(c, m);
selmon = m;
focus(NULL);
Client *
nexttiled(Client *c) {
for(; c && (c->isfloating || !ISVISIBLE(c)); c = c->next);
return c;
void
pop(Client *c) {
detach(c);
attach(c);
focus(c);
arrange(c->mon);
void
propertynotify(XEvent *e) {
Client *c;
Window trans;
XPropertyEvent *ev = &e->xproperty;
if((ev->window == root) && (ev->atom == XA_WM_NAME))
updatestatus();
else if(ev->state == PropertyDelete)
return; /* ignore */
else if((c = wintoclient(ev->window))) {
switch(ev->atom) {
default: break;
case XA_WM_TRANSIENT_FOR:
if(!c->isfloating && (XGetTransientForHint(dpy, c->win, &trans)) &&
(c->isfloating = (wintoclient(trans)) != NULL))
arrange(c->mon);
break;
case XA_WM_NORMAL_HINTS:
updatesizehints(c);
break;
case XA_WM_HINTS:
updatewmhints(c);
drawbars();
break;
if(ev->atom == XA_WM_NAME || ev->atom == netatom[NetWMName]) {
updatetitle(c);
if(c == c->mon->sel)
drawbar(c->mon);
Monitor *
ptrtomon(int x, int y) {
Monitor *m;
for(m = mons; m; m = m->next)
if(INRECT(x, y, m->wx, m->wy, m->ww, m->wh))
return m;
return selmon;
void
quit(const Arg *arg) {
running = False;
void
resize(Client *c, int x, int y, int w, int h, Bool interact) {
if(applysizehints(c, &x, &y, &w, &h, interact))
resizeclient(c, x, y, w, h);
void
resizeclient(Client *c, int x, int y, int w, int h) {
XWindowChanges wc;
c->oldx = c->x; c->x = wc.x = x;
c->oldy = c->y; c->y = wc.y = y;
c->oldw = c->w; c->w = wc.width = w;
c->oldh = c->h; c->h = wc.height = h;
wc.border_width = c->bw;
XConfigureWindow(dpy, c->win, CWX|CWY|CWWidth|CWHeight|CWBorderWidth, &wc);
configure(c);
XSync(dpy, False);
void
resizemouse(const Arg *arg) {
int ocx, ocy;
int nw, nh;
Client *c;
Monitor *m;
XEvent ev;
if(!(c = selmon->sel))
return;
restack(selmon);
ocx = c->x;
ocy = c->y;
if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync,
None, cursor[CurResize], CurrentTime) != GrabSuccess)
return;
XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w + c->bw - 1, c->h + c->bw - 1);
do {
XMaskEvent(dpy, MOUSEMASK|ExposureMask|SubstructureRedirectMask, &ev);
switch(ev.type) {
case ConfigureRequest:
case Expose:
case MapRequest:
handler[ev.type](&ev);
break;
case MotionNotify:
nw = MAX(ev.xmotion.x - ocx - 2 * c->bw + 1, 1);
nh = MAX(ev.xmotion.y - ocy - 2 * c->bw + 1, 1);
if(c->mon->wx + nw >= selmon->wx && c->mon->wx + nw <= selmon->wx + selmon->ww
&& c->mon->wy + nh >= selmon->wy && c->mon->wy + nh <= selmon->wy + selmon->wh)
if(!c->isfloating && selmon->lt[selmon->sellt]->arrange
&& (abs(nw - c->w) > snap || abs(nh - c->h) > snap))
togglefloating(NULL);
if(!selmon->lt[selmon->sellt]->arrange || c->isfloating)
resize(c, c->x, c->y, nw, nh, True);
break;
} while(ev.type != ButtonRelease);
XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w + c->bw - 1, c->h + c->bw - 1);
XUngrabPointer(dpy, CurrentTime);
while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
if((m = ptrtomon(c->x + c->w / 2, c->y + c->h / 2)) != selmon) {
sendmon(c, m);
selmon = m;
focus(NULL);
void
restack(Monitor *m) {
Client *c;
XEvent ev;
XWindowChanges wc;
drawbar(m);
if(!m->sel)
return;
if(m->sel->isfloating || !m->lt[m->sellt]->arrange)
XRaiseWindow(dpy, m->sel->win);
if(m->lt[m->sellt]->arrange) {
wc.stack_mode = Below;
wc.sibling = m->barwin;
for(c = m->stack; c; c = c->snext)
if(!c->isfloating && ISVISIBLE(c)) {
XConfigureWindow(dpy, c->win, CWSibling|CWStackMode, &wc);
wc.sibling = c->win;
XSync(dpy, False);
while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
void
run(void) {
XEvent ev;
/* main event loop */
XSync(dpy, False);
while(running && !XNextEvent(dpy, &ev)) {
if(handler[ev.type])
handler[ev.type](&ev); /* call handler */
void
scan(void) {
unsigned int i, num;
Window d1, d2, *wins = NULL;
XWindowAttributes wa;
if(XQueryTree(dpy, root, &d1, &d2, &wins, &num)) {
for(i = 0; i < num; i++) {
if(!XGetWindowAttributes(dpy, wins[i], &wa)
|| wa.override_redirect || XGetTransientForHint(dpy, wins[i], &d1))
continue;
if(wa.map_state == IsViewable || getstate(wins[i]) == IconicState)
manage(wins[i], &wa);
for(i = 0; i < num; i++) { /* now the transients */
if(!XGetWindowAttributes(dpy, wins[i], &wa))
continue;
if(XGetTransientForHint(dpy, wins[i], &d1)
&& (wa.map_state == IsViewable || getstate(wins[i]) == IconicState))
manage(wins[i], &wa);
if(wins)
XFree(wins);
void
sendmon(Client *c, Monitor *m) {
if(c->mon == m)
return;
unfocus(c, True);
detach(c);
detachstack(c);
c->mon = m;
c->tags = m->tagset[m->seltags]; /* assign tags of target monitor */
attach(c);
attachstack(c);
focus(NULL);
arrange(NULL);
void
setclientstate(Client *c, long state) {
long data[] = { state, None };
XChangeProperty(dpy, c->win, wmatom[WMState], wmatom[WMState], 32,
PropModeReplace, (unsigned char *)data, 2);
Bool
sendevent(Client *c, Atom proto) {
int n;
Atom *protocols;
Bool exists = False;
XEvent ev;
if(XGetWMProtocols(dpy, c->win, &protocols, &n)) {
while(!exists && n--)
exists = protocols[n] == proto;
XFree(protocols);
if(exists) {
ev.type = ClientMessage;
ev.xclient.window = c->win;
ev.xclient.message_type = wmatom[WMProtocols];
ev.xclient.format = 32;
ev.xclient.data.l[0] = proto;
ev.xclient.data.l[1] = CurrentTime;
XSendEvent(dpy, c->win, False, NoEventMask, &ev);
return exists;
void
setfocus(Client *c) {
if(!c->neverfocus)
XSetInputFocus(dpy, c->win, RevertToPointerRoot, CurrentTime);
sendevent(c, wmatom[WMTakeFocus]);
void
setlayout(const Arg *arg) {
if(!arg || !arg->v || arg->v != selmon->lt[selmon->sellt])
selmon->sellt ^= 1;
if(arg && arg->v)
selmon->lt[selmon->sellt] = selmon->lts[selmon->curtag] = (Layout *)arg->v;
strncpy(selmon->ltsymbol, selmon->lt[selmon->sellt]->symbol, sizeof selmon->ltsymbol);
if(selmon->sel)
arrange(selmon);
else
drawbar(selmon);
static void
incnmaster(const Arg *arg) {
int i;
if(!arg || !selmon->lt[selmon->sellt]->arrange)
return;
i = selmon->nmasters[selmon->curtag] + arg->i;
selmon->nmasters[selmon->curtag] = i < 0 ? 0 : i;
arrange(selmon);
static void
setnmaster(const Arg *arg) {
if(!arg || !selmon->lt[selmon->sellt]->arrange)
return;
selmon->nmasters[selmon->curtag] = arg->i > 0 ? arg->i : 0;
arrange(selmon);
/* arg > 1.0 will set mfact absolutly */
void
setmfact(const Arg *arg) {
float f;
if(!arg || !selmon->lt[selmon->sellt]->arrange)
return;
f = arg->f < 1.0 ? arg->f + selmon->mfacts[selmon->curtag] : arg->f - 1.0;
if(f < 0.1 || f > 0.9)
return;
selmon->mfacts[selmon->curtag] = f;
arrange(selmon);
void
setup(void) {
XSetWindowAttributes wa;
/* clean up any zombies immediately */
sigchld(0);
/* init screen */
screen = DefaultScreen(dpy);
root = RootWindow(dpy, screen);
initfont(font);
sw = DisplayWidth(dpy, screen);
sh = DisplayHeight(dpy, screen);
bh = dc.h = dc.font.height + 2;
updategeom();
/* init atoms */
wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False);
wmatom[WMDelete] = XInternAtom(dpy, "WM_DELETE_WINDOW", False);
wmatom[WMState] = XInternAtom(dpy, "WM_STATE", False);
wmatom[WMTakeFocus] = XInternAtom(dpy, "WM_TAKE_FOCUS", False);
netatom[NetActiveWindow] = XInternAtom(dpy, "_NET_ACTIVE_WINDOW", False);
netatom[NetSupported] = XInternAtom(dpy, "_NET_SUPPORTED", False);
netatom[NetWMName] = XInternAtom(dpy, "_NET_WM_NAME", False);
netatom[NetWMState] = XInternAtom(dpy, "_NET_WM_STATE", False);
netatom[NetWMFullscreen] = XInternAtom(dpy, "_NET_WM_STATE_FULLSCREEN", False);
/* init cursors */
cursor[CurNormal] = XCreateFontCursor(dpy, XC_left_ptr);
cursor[CurResize] = XCreateFontCursor(dpy, XC_sizing);
cursor[CurMove] = XCreateFontCursor(dpy, XC_fleur);
/* init appearance */
dc.norm[ColBorder] = getcolor(normbordercolor);
dc.norm[ColBG] = getcolor(normbgcolor);
dc.norm[ColFG] = getcolor(normfgcolor);
dc.sel[ColBorder] = getcolor(selbordercolor);
dc.sel[ColBG] = getcolor(selbgcolor);
dc.sel[ColFG] = getcolor(selfgcolor);
dc.drawable = XCreatePixmap(dpy, root, DisplayWidth(dpy, screen), bh, DefaultDepth(dpy, screen));
dc.gc = XCreateGC(dpy, root, 0, NULL);
XSetLineAttributes(dpy, dc.gc, 1, LineSolid, CapButt, JoinMiter);
if(!dc.font.set)
XSetFont(dpy, dc.gc, dc.font.xfont->fid);
/* init bars */
updatebars();
updatestatus();
/* EWMH support per view */
XChangeProperty(dpy, root, netatom[NetSupported], XA_ATOM, 32,
PropModeReplace, (unsigned char *) netatom, NetLast);
/* select for events */
wa.cursor = cursor[CurNormal];
wa.event_mask = SubstructureRedirectMask|SubstructureNotifyMask|ButtonPressMask
|EnterWindowMask|LeaveWindowMask|StructureNotifyMask
|PropertyChangeMask;
XChangeWindowAttributes(dpy, root, CWEventMask|CWCursor, &wa);
XSelectInput(dpy, root, wa.event_mask);
grabkeys();
void
showhide(Client *c) {
if(!c)
return;
if(ISVISIBLE(c)) { /* show clients top down */
XMoveWindow(dpy, c->win, c->x, c->y);
if((!c->mon->lt[c->mon->sellt]->arrange || c->isfloating) && !c->isfullscreen)
resize(c, c->x, c->y, c->w, c->h, False);
showhide(c->snext);
else { /* hide clients bottom up */
showhide(c->snext);
XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y);
void
sigchld(int unused) {
if(signal(SIGCHLD, sigchld) == SIG_ERR)
die("Can't install SIGCHLD handler");
while(0 < waitpid(-1, NULL, WNOHANG));
void
spawn(const Arg *arg) {
if(fork() == 0) {
if(dpy)
close(ConnectionNumber(dpy));
setsid();
execvp(((char **)arg->v)[0], (char **)arg->v);
fprintf(stderr, "dwm: execvp %s", ((char **)arg->v)[0]);
perror(" failed");
exit(EXIT_SUCCESS);
void
tag(const Arg *arg) {
if(selmon->sel && arg->ui & TAGMASK) {
selmon->sel->tags = arg->ui & TAGMASK;
arrange(selmon);
void
tagmon(const Arg *arg) {
if(!selmon->sel || !mons->next)
return;
sendmon(selmon->sel, dirtomon(arg->i));
int
textnw(const char *text, unsigned int len) {
XRectangle r;
if(dc.font.set) {
XmbTextExtents(dc.font.set, text, len, NULL, &r);
return r.width;
return XTextWidth(dc.font.xfont, text, len);
void
ntile(Monitor *m) {
int x, y, h, w, mw, nmax, nm;
unsigned int i, n;
Client *c;
snprintf(m->ltsymbol, sizeof m->ltsymbol, "=%d]", m->nmasters[m->curtag]);
for(n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++);
c = nexttiled(m->clients);
nmax = m->nmasters[m->curtag];
nm = nmax == 1 ? 1 : MIN(n / 2, nmax);
if(nm > n)
nm = n;
/* master */
if(nm > 0) {
mw = selmon->mfacts[selmon->curtag] * m->ww;
h = m->wh / nm;
if(h < bh)
h = m->wh;
y = m->wy;
for(i = 0; i < nm; i++, c = nexttiled(c->next)) {
resize(c, m->wx, y, (n == nm ? m->ww : mw) - 2 * c->bw,
((i + 1 == nm) ? m->wy + m->wh - y : h) - 2 * c->bw, False);
if(h != m->wh)
y = c->y + HEIGHT(c);
n -= nm;
} else
mw = 0;
if(n == 0)
return;
/* tile stack */
x = m->wx + mw;
y = m->wy;
w = m->ww - mw;
h = m->wh / n;
if(h < bh)
h = m->wh;
for(i = 0; c; c = nexttiled(c->next), i++) {
resize(c, x, y, w - 2 * c->bw,
((i + 1 == n) ? m->wy + m->wh - y : h) - 2 * c->bw, False);
if(h != m->wh)
y = c->y + HEIGHT(c);
void
togglebar(const Arg *arg) {
selmon->showbar = !selmon->showbar;
updatebarpos(selmon);
XMoveResizeWindow(dpy, selmon->barwin, selmon->wx, selmon->by, selmon->ww, bh);
arrange(selmon);
void
togglefloating(const Arg *arg) {
if(!selmon->sel)
return;
selmon->sel->isfloating = !selmon->sel->isfloating || selmon->sel->isfixed;
if(selmon->sel->isfloating)
resize(selmon->sel, selmon->sel->x, selmon->sel->y,
selmon->sel->w, selmon->sel->h, False);
arrange(selmon);
void
toggletag(const Arg *arg) {
unsigned int newtags;
unsigned int i;
if(!selmon->sel)
return;
newtags = selmon->sel->tags ^ (arg->ui & TAGMASK);
if(newtags) {
selmon->sel->tags = newtags;
if(newtags == ~0) {
selmon->prevtag = selmon->curtag;
selmon->curtag = 0;
if(!(newtags & 1 << (selmon->curtag - 1))) {
selmon->prevtag = selmon->curtag;
for (i=0; !(newtags & 1 << i); i++);
selmon->curtag = i + 1;
selmon->sel->tags = newtags;
selmon->lt[selmon->sellt] = selmon->lts[selmon->curtag];
arrange(selmon);
void
toggleview(const Arg *arg) {
unsigned int newtagset = selmon->tagset[selmon->seltags] ^ (arg->ui & TAGMASK);
if(newtagset) {
selmon->tagset[selmon->seltags] = newtagset;
arrange(selmon);
void
unfocus(Client *c, Bool setfocus) {
if(!c)
return;
grabbuttons(c, False);
XSetWindowBorder(dpy, c->win, dc.norm[ColBorder]);
if(setfocus)
XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
void
unmanage(Client *c, Bool destroyed) {
Monitor *m = c->mon;
XWindowChanges wc;
/* The server grab construct avoids race conditions. */
detach(c);
detachstack(c);
if(!destroyed) {
wc.border_width = c->oldbw;
XGrabServer(dpy);
XSetErrorHandler(xerrordummy);
XConfigureWindow(dpy, c->win, CWBorderWidth, &wc); /* restore border */
XUngrabButton(dpy, AnyButton, AnyModifier, c->win);
setclientstate(c, WithdrawnState);
XSync(dpy, False);
XSetErrorHandler(xerror);
XUngrabServer(dpy);
free(c);
focus(NULL);
arrange(m);
void
unmapnotify(XEvent *e) {
Client *c;
XUnmapEvent *ev = &e->xunmap;
if((c = wintoclient(ev->window)))
unmanage(c, False);
void
updatebars(void) {
Monitor *m;
XSetWindowAttributes wa = {
.override_redirect = True,
.background_pixmap = ParentRelative,
.event_mask = ButtonPressMask|ExposureMask
for(m = mons; m; m = m->next) {
m->barwin = XCreateWindow(dpy, root, m->wx, m->by, m->ww, bh, 0, DefaultDepth(dpy, screen),
CopyFromParent, DefaultVisual(dpy, screen),
CWOverrideRedirect|CWBackPixmap|CWEventMask, &wa);
XDefineCursor(dpy, m->barwin, cursor[CurNormal]);
XMapRaised(dpy, m->barwin);
void
updatebarpos(Monitor *m) {
m->wy = m->my;
m->wh = m->mh;
if(m->showbar) {
m->wh -= bh;
m->by = m->topbar ? m->wy : m->wy + m->wh;
m->wy = m->topbar ? m->wy + bh : m->wy;
else
m->by = -bh;
Bool
updategeom(void) {
Bool dirty = False;
#ifdef XINERAMA
if(XineramaIsActive(dpy)) {
int i, j, n, nn;
Client *c;
Monitor *m;
XineramaScreenInfo *info = XineramaQueryScreens(dpy, &nn);
XineramaScreenInfo *unique = NULL;
for(n = 0, m = mons; m; m = m->next, n++);
/* only consider unique geometries as separate screens */
if(!(unique = (XineramaScreenInfo *)malloc(sizeof(XineramaScreenInfo) * nn)))
die("fatal: could not malloc() %u bytes\n", sizeof(XineramaScreenInfo) * nn);
for(i = 0, j = 0; i < nn; i++)
if(isuniquegeom(unique, j, &info[i]))
memcpy(&unique[j++], &info[i], sizeof(XineramaScreenInfo));
XFree(info);
nn = j;
if(n <= nn) {
for(i = 0; i < (nn - n); i++) { /* new monitors available */
for(m = mons; m && m->next; m = m->next);
if(m)
m->next = createmon();
else
mons = createmon();
for(i = 0, m = mons; i < nn && m; m = m->next, i++)
if(i >= n
|| (unique[i].x_org != m->mx || unique[i].y_org != m->my
|| unique[i].width != m->mw || unique[i].height != m->mh))
dirty = True;
m->num = i;
m->mx = m->wx = unique[i].x_org;
m->my = m->wy = unique[i].y_org;
m->mw = m->ww = unique[i].width;
m->mh = m->wh = unique[i].height;
updatebarpos(m);
else { /* less monitors available nn < n */
for(i = nn; i < n; i++) {
for(m = mons; m && m->next; m = m->next);
while(m->clients) {
dirty = True;
c = m->clients;
m->clients = c->next;
detachstack(c);
c->mon = mons;
attach(c);
attachstack(c);
if(m == selmon)
selmon = mons;
cleanupmon(m);
free(unique);
else
#endif /* XINERAMA */
/* default monitor setup */
if(!mons)
mons = createmon();
if(mons->mw != sw || mons->mh != sh) {
dirty = True;
mons->mw = mons->ww = sw;
mons->mh = mons->wh = sh;
updatebarpos(mons);
if(dirty) {
selmon = mons;
selmon = wintomon(root);
return dirty;
void
updatenumlockmask(void) {
unsigned int i, j;
XModifierKeymap *modmap;
numlockmask = 0;
modmap = XGetModifierMapping(dpy);
for(i = 0; i < 8; i++)
for(j = 0; j < modmap->max_keypermod; j++)
if(modmap->modifiermap[i * modmap->max_keypermod + j]
== XKeysymToKeycode(dpy, XK_Num_Lock))
numlockmask = (1 << i);
XFreeModifiermap(modmap);
void
updatesizehints(Client *c) {
long msize;
XSizeHints size;
if(!XGetWMNormalHints(dpy, c->win, &size, &msize))
/* size is uninitialized, ensure that size.flags aren't used */
size.flags = PSize;
if(size.flags & PBaseSize) {
c->basew = size.base_width;
c->baseh = size.base_height;
else if(size.flags & PMinSize) {
c->basew = size.min_width;
c->baseh = size.min_height;
else
c->basew = c->baseh = 0;
if(size.flags & PResizeInc) {
c->incw = size.width_inc;
c->inch = size.height_inc;
else
c->incw = c->inch = 0;
if(size.flags & PMaxSize) {
c->maxw = sizeThe diff you use rename tile() to ntile(), you should not have tile in your config.h. The rest of errors probably relate to what the diff has nerfed, or should be gone once you fix that tile.
I think you should stay on 5.8.2 until all the patches have support for 5.9 if you can't patch on patch on your own.
(edit) that github repo has issues, it might be good idea to create issue if that patch really have compatible issue with 5.9. That would benefit all other patch users.
Last edited by livibetter (2011-09-12 14:55:00)
Maybe you are looking for
-
Error while creating Discussions for a document inside a room
Hi, I am getting an error when i am trying to start a discussion for a document. When i go back to the details screen and try to add a discussion it shows that the discussion is actually created inspite of the error being displayed. Thanks Regards Pr
-
Tracks in my albums are all in the wrong order!
Hi, as it turns out I have a problem. Some of my albums on my iPad have all mixed up, the tracks we appear as, instead of in correct order (listed as 1. 2. 3. Well you get the idea), are in the wrong order! Everything was fine before I update to iOS
-
User entry without restriction
Hi Guys, I was wondering if there was way of getting a user entry without actually restricting based on the entry. I need the user to enter a year value (mandatory)and based on that, I have to create another variable using User exit. How can that be
-
Hey all, I'm using the "changed" event of a TextInput to do the following: while ( Textfield.textWidth > Textfield.width ) { Textfield.setStyle( "fontSize", Textfield.getStyle( "fontSize" ) - 1 ); It should change the fontSize so the text alway
-
Can't log in using Opera or Safari on a Mac
Login to the support forum fails using Opera 10.60 or Safari 5.1.2 on a Mac (OS X 10.7.2). It only works with Firefox 9.0.1. These are all up to date. How come SE has a forum where login is this brittle? What can be done about it? I don't want to hav