MacOS – Issues with /usr/lib/libcups.2.dylib. x86 applications will not execute

applicationskernellibrarymacosunix

I upgraded CUPS from 2.0.0 to 2.0.2 on OS X 10.10.4 Yosemite for security reasons per advisement from a Nessus scan. I committed the cardinal sin of not backing up my OS before making this change. Unfortunately, many x86 apps on my system are now displaying this fatal error:

Exception Type: EXC_BREAKPOINT (SIGTRAP) Exception Codes:
0x0000000000000002, 0x0000000000000000

Application Specific Information: dyld: launch, loading dependent
libraries

Dyld Error Message: Library not loaded: /usr/lib/libcups.2.dylib
Referenced from:
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore
Reason: no suitable image found. Did find: /usr/lib/libcups.2.dylib:
mach-o, but wrong architecture /usr/lib/libcups.2.dylib: mach-o, but
wrong architecture

Fair enough. So I decided to run lipo -info on the affected library, and it states that its architecture is x86_64("Non-fat file: /usr/lib/libcups.2.dylib is architecture: x86_64"). I deduced that the CUPS source needed x86(i386) flags upon configuration after a bit of research on the matter. So when I ran a new configure command:

sudo ./configure CFLAGS="-arch i386 -arch x86_64" CXXFLAGS="-arch i386 -arch x86_64" LDFLAGS="-arch i386 -arch x86_64"

Which was all well and dandy, but it executed with errors. I continued anyway with my make and make install commands on good faith, but found that now the affected applications either did not initiate at all, or still returned fatal errors. What am I doing wrong here? I downloaded the source directly from CUPS.org if anyone is wondering.

Best Answer

From the INSTALL.txt file:

At lines 101–104:

On OS X, use the "--with-archflags" option to build with the correct set of architectures:

./configure --with-archflags="-arch i386 -arch x86_64" ...

Just type in these commands:

./configure --with-archflags="-arch i386 -arch x86_64"
make 
sudo make install