# Failed to update devel/icu



## serpent7776 (Apr 1, 2013)

I am unable to compile devel/icu. My current version is icu-4.8.1.1_1. I tried to use pkgfe and [cmd=]portmaster -r icu[/cmd], but it fails with messages:

```
makeconv.o: In function `main':
makeconv.c:(.text+0x6bf): undefined reference to `u_getVersion_50'
makeconv.c:(.text+0x6d1): undefined reference to `u_getDataDirectory_50'
makeconv.c:(.text+0x8ed): undefined reference to `u_errorName_50'
makeconv.c:(.text+0xb03): undefined reference to `u_errorName_50'
makeconv.c:(.text+0xc60): undefined reference to `uprv_stricmp_50'
makeconv.c:(.text+0xcaa): undefined reference to `uprv_isInvariantString_50'
makeconv.c:(.text+0xd5f): undefined reference to `u_errorName_50'
makeconv.c:(.text+0xd96): undefined reference to `u_errorName_50'
genmbcs.o: In function `MBCSOpen':
genmbcs.cpp:(.text+0xb7): undefined reference to `uprv_malloc_50'
genmbcs.o: In function `MBCSAddTable(NewConverter*, UCMTable*, UConverterStaticData*)':
genmbcs.cpp:(.text+0x1bce): undefined reference to `uprv_malloc_50'
genmbcs.cpp:(.text+0x1c27): undefined reference to `uprv_malloc_50'
genmbcs.o: In function `MBCSClose(NewConverter*)':
genmbcs.cpp:(.text+0x2721): undefined reference to `uprv_free_50'
genmbcs.cpp:(.text+0x272d): undefined reference to `uprv_free_50'
genmbcs.cpp:(.text+0x2736): undefined reference to `uprv_free_50'
gencnvex.o: In function `CnvExtOpen':
gencnvex.c:(.text+0x27): undefined reference to `uprv_malloc_50'
gencnvex.o: In function `generateToUTable':
gencnvex.c:(.text+0xa5a): undefined reference to `u_strFromUTF32_50'
gencnvex.c:(.text+0xabd): undefined reference to `u_strFromUTF32_50'
gencnvex.o: In function `CnvExtClose':
gencnvex.c:(.text+0x16eb): undefined reference to `uprv_free_50'
gmake[2]: *** [../../bin/makeconv] Error 1
gmake[2]: Leaving directory `/usr/ports/devel/icu/work/icu/source/tools/makeconv'
gmake[1]: *** [all-recursive] Error 2
gmake[1]: Leaving directory `/usr/ports/devel/icu/work/icu/source/tools'
gmake: *** [all-recursive] Error 2
*** [do-build] Error code 1

Stop in /usr/ports/devel/icu.
*** [build] Error code 1

Stop in /usr/ports/devel/icu.

===>>> make failed for devel/icu
===>>> Aborting update

===>>> Update for icu-4.8.1.1_1 failed
===>>> Aborting update

===>>> Killing background jobs
Terminated
```

My system is 

```
$ uname -a
FreeBSD DaemON.localhost 9.1-RELEASE FreeBSD 9.1-RELEASE #0 r243825: Tue Dec  4 09:23:10 UTC 2012     root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  amd64
```


----------



## jb_fvwm2 (Apr 1, 2013)

I've noted somewhere to run that make from an sh rather than the default tcsh...


----------



## kpa (Apr 1, 2013)

That should never ever make a difference because the shell scripts have a proper shebangs. 
	
	



```
#!/bin/sh
```
Only thing that could affect the compilation in a different shells is locale(1) settings. Using the default C locale in root's shell is highly recommended.


----------



## wblock@ (Apr 1, 2013)

9.1-RELEASE as of December 4?  There is a note about devel/icu in /usr/ports/UPDATING on 20121218.


----------



## serpent7776 (Apr 6, 2013)

I have tried compiling from sh and with locale changed to default C, but both methods fail. A note in /usr/ports/UPDATING states that I should run `# portmaster -r devel/icu`, but when I try to run it, it fails.

Can these sort of problems be caused by using non-default compiler? For some time I was using newer version gcc from ports tree to build ports. I also have similar problems with compiling few other ports (e.g. security/nettle).


----------



## kpa (Apr 6, 2013)

Try uninstalling the old version first, by force if necessary.


----------



## serpent7776 (Apr 8, 2013)

kpa said:
			
		

> Try uninstalling the old version first, by force if necessary.



It did work, thank you for your help. Simple solutions are often the best. Now I of course have to rebuild all packages that depend on devel/icu.


----------

